Deployment sequence is a mechanism for saving
recently used sequences of graphs in database
for further execution.
Sequences are related to release object.
Partial-Bug: 1620620
Change-Id: I23ce74e8edbab579d6704a947d89e8d6e9c58fb7
Size of deployment_info field in tasks table grows as n**2
(depending on number of nodes). If we have 200 nodes, the
size of the structure is about 20Mb. In case of 600 nodes it
would be theoretically about 720Mb, in practice it doesn't fit
into 1Gb.
Good solution is to put common part to separate place. But it's
not so fast. Also it will not help if all nodes will be going to
be deployed with customized deployment info.
Change-Id: Id3154ab423b0863d9cc4952335293bf5fc30df38
Partial-Bug: #1596987
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
Network-related database models are moved from db/sqlalchemy/models
to extensions/network_manager/models/. Import paths have also been
updated.
Change-Id: Idf29f9a14fc1faccd8fa8750ed8c5d2ba9f11ebf
Blueprint: network-manager-extension
API url: `/api/transactions/<id>/deployment_history`
This change proposes to store all the information about
particular deployment tasks ever executed for each
particular cluster.
Change-Id: I73010a713ab8592418eb59bb133a427ac4c4a665
Implements: blueprint store-deployment-tasks-history
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
* Move vms_conf from NodeAttributes to Node.
* Drop interfaces field, that is not used anymore.
* Fix all references to vms_conf across all sources.
* Remove explicit changed() call, since JSON fields
can detect updates on all levels.
* Replace objects.Node.set_vms_conf() function
with direct attribute assignment
Change-Id: I2112a6dba30b49e3d658ef1503ee48ad1f92e693
Implements: blueprint support-numa-cpu-pinning
This patch inroduces set of API handlers for links to
the plugin dashboards that running on the master node:
plugins/:plugin_id/links/
plugins/:plugin_id/links/:link_id
Implements blueprint external-dashboard-links-support-in-nailgun
Closes-Bug: #1520287
Change-Id: Ia0e4e096ff5df595c6797ac76b1845ccdbb6cd3c
- move test from unit to integration;
- disable additional properties in validation schema;
- refactoring;
- add more documentation;
- add more tests;
- Cluster-level plugin dashboard entries is renames to the cluster plugin links;
- hidden field added to the ClusterPluginLink API;
Change-Id: I7dc99fc622359848e54c7ce248360db1bdef7f0f
Author: Ilya Kutukov <ikutukov@mirantis.com>
Co-Authored-By: Vladimir Sharshov <vsharshov@mirantis.com>
Co-Authored-By: Ivan Kliuk <ikliuk@mirantis.com>
Closes-Bug: #1518381
- Dashboard entry DB model and DB migration logic added,
- Handler, json schema and validation added,
- Serializer added,
- Dashboard entires info added into statistics,
- Public url for Dashboard entry creation.
Implements blueprint post-deployment-dashboard
Change-Id: I5e613bb35366227d1265fbc698e2efeddf931cc7
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
This patch is part of works for implementation new mechanism of compatibility
between components in Fuel. Mechanism is based on 'component' entity. Current
changes provide ability to store compatibility data of components in DB:
'components' and 'release_components' tables, models and objects in Nailgun.
Implements: blueprint component-registry
Change-Id: I837ceb61d1858079c9a92eca5a2631bfd79c4f27
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>
There are two reasons why it's useful to prepare Fuel 7.0 migration file
at the beginning of development. Here they are:
1/ Having the fuel_7_0.py migration will protect us from mass merge
conflicts when we start merging various features into master. Why?
Because devs will extend already existing migration file, and
each one won't create fuel_7_0.py file.
2/ We want to cover our migration mishits - apparently, database state
after migration doesn't fit state declared in ORM. The fuel_7_0.py
fixes this.
Closes-Bug: #1468250
Change-Id: I62f230e07398b2ce8639e6e444b82c77a5c296b3
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
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
Added a NodeGroup model. NodeGroups can be created and modified
via the Fuel API. Clusters are created with a default node group
and the cluster networks are tied to that default node group.
Upon creation of a node group a set of networks will be generated.
When a node group is deleted those networks will be deleted as well.
See previous change: Ic30a1b46112599022645b06f7bef2223ff4c6475
DocImpact
Change-Id: I8bbe6b8c6338d6586c7e9a61542939ae2a19828b
Implements: blueprint multiple-cluster-networks
New wsgi middleware was added to middleware stack of main webpy
application. The middleware is a class which implements logic for
collecting info from requests and responses, forming appropriate data
structure and dumps it to db for further usage.
Change-Id: If420f3141eb5a357f010f6ef0b4def0e5a7874bd
Implements: blueprint send-anon-usage
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
Added a NodeGroup model. NodeGroups can be created and modified
via the Fuel API. Clusters are created with a default node group
and the cluster networks are tied to that default node group.
Added API handler for creating new NetworkGroups.
Implements: blueprint multiple-cluster-networks
Closes-bug: #1272142
Change-Id: Ic30a1b46112599022645b06f7bef2223ff4c6475
* Add a NodeBondInterface DB model.
* Add a new model rendering to the api/nodes/x/interfaces
handler.
* Allow a bond creation via the handler.
* Add a data propagation to the deployment_serializer.
* Add Enum usage.
* Migration rules fixed.
* Tests fixed.
* Nets-to-NICs default assignment fixed.
TODO:
* New tests will be added soon.
* Add a lot of checks and validations.
* NodeNICCollectionhandler has an outdated behavior.
Lets syncronize it with NodeNic handler.
* Bonding must be allowed to the nodes in cluster only.
* Bonding is not available in NovaNetwork.
Implements: blueprint nics-bonding-enabled-from-ui
Change-Id: Ib70bbe9fe897a07f2b7b201944333f70986bbb35
Admin and Private can be paired with other networks now.
Private acts as untagged network.
Network groups' "meta" is exposed to UI.
"allowed_networks" model is removed.
Tests are added.
Implements: blueprint get-rid-of-networking-limitations
Implements: blueprint expose-networks-meta-from-nailgun-to-ui
Change-Id: Ic3383a2da87a34259463c2a2c97d05b20a7fc998
Part 3.
1. Some cleaning in network manager.
2. A number of network manager tests added.
3. Some refactoring in NetworkConfigurationValidator and NetworkConfigurationVerifyHandlers.
4. Unification of network groups creation and of networks update.
5. Global parameters removed.
Implements: blueprint nailgun-network-manager-refactoring
Change-Id: I688174d4fc9fd3569696e03a8a3067e553d0ac9f
These models are removed and NetworkGroup model have all relationships that Network model had.
Vlan model was utilized to check that newly created networks
have the same VLAN IDs being assigned as networks of other clusters.
Now this can be checked using NetworkGroup model but not checked
because the result of this checking was used for logging only.
Implements: blueprint nailgun-remove-network-model
Change-Id: Iaec7d5acdb0e47d9e9cf4c224e1be768df83107f