* data migration was prepared
* unit tests for migration was added
Change-Id: Iafe9267cc1c64c0c966e0be8fc9181f31f029b75
Implements: blueprint security-groups-support-for-ovs
This commit switching tasks resolution approach to the tags based one.
Tag - minimal unit what's necessary only for task resolution and can be
mapped to the node through the role interface only. Each role provides set
of tags in its 'tags' field and may be modified via role API. Tag may be
created separately via tag API, but, this tag can not be used unless it's
stuck to the role.
Change-Id: Icd78fd124997c8aafb07964eeb8e0f7dbb1b1cd2
Implements: blueprint role-decomposition
* Add ability for handling new predicates for requires
component's property
* Refactoring of exist components validation function
* Update release components according to new DSL model
Implements: blueprint component-registry-improvements
Change-Id: I6175e28118dac494d48968e3f8c51e89ab74a34b
Depends-On: Iab03bf5e36800c8aea0e054719d40ca42a542b73
This patch:
* extends current DB model with new entities and provides
related migrations.
* extends plugin sync method to support storing new plugins
attributes.
* provides cosmetic fix for ClusterPlugin model. Lets write table
names in the plural but model names in the singular.
Change-Id: I3edbde1d48461ce3fab7c93f17e2db5332b1f7fb
Implements: blueprint nics-and-nodes-attributes-via-plugin
All relations to ClusterDeploymentGraph, PluginDeploymentGraph,
ReleaseDeploymentGraph is moved inside associations models, cascade behaviour
for references is added.
Change-Id: I76be4888cfc2d26a4e68b5ce067f4e68809b40f4
Implements: blueprint custom-graph-execution
This models store deployment tasks sets that is grouped under
DeploymentGraph record with unique id.
DeploymentGraph is linked via m2m to the:
- releases
- plugins
- clusters
This transitive tables containing 'type' field, that should be used as
graphs merge key in business logic.
DocImpact
Implements: blueprint custom-graph-execution
Change-Id: If53cb58e8ae4cf8fe4caa470bf207ff1683b1cda
In Fuel 5.1 we had an experimental feature - 'patching openstack env'.
The idea was to update and to rollback OpenStack environments between
minor releases. However, we have encounter a lot of problems with
restoring OpenStack databases andresolving dependency hell in packages,
so we buried it and never release it.
This patch removes legacy code from the source tree. We can do it
without fear, since it wasn't released in public.
Related-Bug: #1511499
Change-Id: I58b3fedd239eb7fe4226e51c2d6386efab14395d
* Add node_attributes field to Release model
* Add fixture to openstack.yaml
* Copy node attributes from release to node
when node is assigned to cluster
Change-Id: Ib675c784f19f28dd94657e32228b9b79efb03240
Implements: blueprint support-numa-cpu-pinning
Changed all JSON types fields of Release object on corresponding
Mutable(Dict/List) types.
Changed default value of 'vmware_attributes_metadata' field.
Change-Id: I024e199518526c1e60058c0ad25150ed4a543d26
Partial-Bug: 1482658
Get rid of component object.
Store info with compatibility and uncompatiblity
lists of components in plugin and release.
Change-Id: I47ed959f9079c346d9d968e7ebd9bf1b7b150e2f
Implements: blueprint component-registry
The same network role from different plugins can be merged
according to policy of merge, that allows each plugin to extend the VIP for role.
TestCheckVIPsNames was deleted, because this patch makes it obsolete.
Change-Id: I81e773e53ab67b4e7d424805134c0d86dcc7a43a
Closes-Bug: #1487011
is_deployable doesn't really give any additional information for a
release, it is removed. To make change API-backward-compatible, it is
retained as a property dependent on release.state.
New state is added - manageonly, for environments that are not able to
be deployed, but can still be managed.
Change-Id: I518a0114730a2f227c9ef035a376f9a90d3d5bbd
Closes-bug: #1503303
DocImpact
* add a list of extensions for node, environment and release tables
* when user creates environment, extensions list gets copied from
release, so for specific cluster it's possible to have it's own
list of extensions
* by default list of extensions for node is empty, we assume that
the person who needs to hack something can edit this the field
to assign to node specific extension. Nodes extensions list has
higher priority, which means when try to find extension, first
we are looking for it in node.extensions field, if no extensions
are found, we will try to find them in node.cluster.extensions field.
* added callbacks when node gets created, updated or reset.
With this callbacks extensions will be able to handle cases
when something in node was updated.
Implements blueprint: volume-manager-refactoring
Change-Id: I07da28a3a56df52baf420248c5d6ccd2084347c0
Add 'network_roles_metadata' section to 'openstack.yaml'
Add new field 'network_roles_metadata' to model 'Release'
Add a migration for 'Release.network_roles_metadata' column
Add unit tests for the migration
Upgrade JSON schema in object 'Release'
Change-Id: Ia3d9fd21bbe7aef3b03148941caacd0abba7e8ad
Implements: blueprint templates-for-networking
In Fuel 7.0 we want to have ability to extend node roles on fly by using
plugins. In order to achieve this, we want to have declarative
schemaless approach, so we won't require database object manipulations
(CRUD) each time we somehow change node role.
This commit drops such tables like:
* roles
* pending_roles
* node_roles
and use postgresql arrays in nodes tables instead:
* roles
* pending_roles
* primary_roles
Implements blueprint role-as-a-plugin
Change-Id: I2d3fccb7187fa4e82595c9ca6b27ef8ce90ee4b2
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
Until now we have two functions which were doing the same
The patch unifies it as follows:
* Rename Release model property from 'fuel_version'
to 'environment_version' to make it more descriptive
* remove extract_env_version function, and replace it with
environment_version property in Release model.
Closes-Bug: #1470524
Closes-Bug: #1470768
Change-Id: I7688f048468d6036fb326be82049ec50a7925386
Field is called `modes`. Cluster validation stops creating the
environment with mode that is not in the `modes` field of cluster
release.
One cluster validation test seemed to have reversed logic
(test_release_non_exists_validation). It is fixed now.
Change-Id: Iafeb988a91f44e29ea0491422b8348997d950bc4
Closes-Bug: #1456540
We need it to be possible to set priorities (pinning)
for deb and rpm repositories. This patch moves repo_metadata
to cluster attributes and changes its format.
Plugins' repos should have higher priority than default ones,
so we're setting them according to settings.yaml.
Implements: blueprint consume-external-ubuntu
Change-Id: I5a98469b9547014abec9406a7b36f1cf22ba8086
Current release's '.state' attribute is obsolete and do not used. It was
introduced a time ago when we had an RHEL support. So it could be
refactored to fit out current goals.
Since now there will be only two states:
* available
* unavailable
There is no way to start provisioning task for unavailable releases.
Change-Id: I8827c710da6e4f77a6397381d51fe25b87149462
Implements: blueprint downloadable-ubuntu-release
We have several requirements for graph storages, that will
satisfy all parties:
- Store graph definition externally to nailgun, in fuel-library,
because fuel-library devs should be able to modify graph configuration,
based on changes in puppet modules
- Validate any data that nailgun will store, and validation should
happen at the time data is received by nailgun
- It should be possible to migrate data to required format, on upgrade,
if we will decide that it is necessary
- It should be possible to modify graph per cluster, and per release,
for flexibility of debugging and development, also it may
help with maintenance tasks
To solve this issues 2 db fields was added:
Cluster.deployment_tasks
Release.deployemtn_tasks
It will be possible to read/modify both of this fields by next api request:
GET/PUT release/<rel_id>/deployment_tasks
GET/PUT cluster/<cluster_id>/deployment_tasks
Also note that deployment configuration for old release will be stored in
nailgun code in orchestrator/graph_configuration.py module
implements blueprint granular-deployment-based-on-tasks
Change-Id: I6f23da3ea7a4f692d02dcb84175540e64f34df89
In order to force customers moving to new releases or for technical
reasons we want to forbid deploying some releases. For this reason we
need to introduce a special field in the Relases model.
Please note, the field has no affect in experimental mode.
Change-Id: Iaf315d291ce9f18ad52b15c030be193d0d5ea6f9
Closes-Bug: #1368100
- removed wizard.json
- all wizard config moved to base_release config
- migration for 5.1 changed: already existing releases'
"wizard_metadata" attribute is updated with
proper data (i.e. without nsx info).
Change-Id: Ie6928b0e4b82882383fc74043a76f22400698b91
Closes-bug: 1348627
Column can_update_from_versions of release table
should use server_default='[]'
Change-Id: I2d8a1e3e9ea85a5c99684eacb4eb3131cfb9fb81
Closes-Bug: #1328874
Adds api_version, fuel_version, openstack_version, repo_metadata, puppet_modules_source, puppet_manifests_source to
messages for orchestrator. Corresponding field is added to 'Cluster' DB table. 'ReleaseOrchestratorData' DB table is added.
Additional fixture '/etc/nailgun/fixtures/repodata.yaml' is expected to be provided by puppet on master node installation.
Additional parameter 'version->api' in 'version.yaml' is expected to be provided by puppet as well.
Implements: blueprint fuel-upgrade
Change-Id: Ic86fb52c99aaee6a75536a153ff61fdd776c73f7
Ceph role was miskakenly deleted for CentOS release
when release roles were updated.
Now roles are deleted for current release only during roles update.
Closes-Bug: 1263251
Change-Id: I73afc0227f56ed54b22f398482a8a14148d5740f
Roles order in release DB object is the same as its order in openstack.json now.
Tests added.
Closes-Bug: #1262557
Change-Id: If74ff1d668cae52c5df6e937bbb36048e8f5b9e9