During plugin synchronisation or plugin update, if legacy
tasks (tasks.yaml) are removed, they should be set to empty
value [] in the database.
Closes-bug: #1648223
Related-bug: #1626855
Change-Id: I4c6a61eb6ac0bb4395b843c4ba7df5bcd8ab2f7b
Refactor interface logic:
* remove interface_properties
* CRUD operations for NIC attributes
* default values for NIC meta and attributes
Change-Id: I26106f1b55c704a9e79d01fadc48c88a92ccc414
Implements: blueprint nics-and-nodes-attributes-via-plugin
'tags_metadata.yaml' file contains set of tags for tasks
serialization. These tags can be used in roles introduced
by the plugin.
Change-Id: I1e68a240b2fe535188404eb47c23b875a4616f2a
Implements: blueprint role-decomposition
Before this patch all empty but existing plugin metadata properties was
removed from output as well as `tasks` field that was not respecting
not null constraint at DB level.
As a minor patch payload missing InvalidFileFormat error was added.
Change-Id: I6a21e347fefb7a9a30be562b7fb3e4a8c5c61a36
Partial-Bug: 1616722
Closes-Bug: 1626855
There was a problem with graphs structure transformation
in plugin adapters that was skipped during plugin creation
because no adapter exists at that moment.
Also, graphs declaration syntax was simplified to the
graphs:
- type: mygraph
- tasks: []
- name: graphname
Change-Id: I2d5c8b437a1af3425af7f96e81bcf9cbace7727f
Closes-Bug: #1623557
Now it is possible:
* To bring release as plugin
* To define multiple graphs types for the plugin
Change-Id: Idcac14e6f4055ca0e488efc2cc23945036a493d9
Implements-Blueprint: release-as-a-plugin
the following attributes was added:
- node_filter: YAQL expression to select nodes for applying the graph
- node_attributes_on_success: attributes which will be applied to node
if execution of graph completes successfully.
- node_attributes_on_fail: attributes which will be applied to node
if execution of graph fails.
- node_attributes_on_stop: attributes which will be applied to node
if execution of graph interrupts.
Blueprint: graph-concept-extension
Change-Id: I949b3971f62c17b1d243c8ed97e2802afa4e0cce
This property contains list of groups, that is built from
tasks with type 'group' and each task may contain property
fault_tolerance, that shall be moved from openstack.yaml
to deployment tasks.
For plugins this attribute is filled from roles_metadata
for all tasks with type group (for backward compatibility).
DocImpact
Partial-Bug: 1435610
Change-Id: I1969b953eca667c09248a6b67ffee37bfd20f474
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
The new option 'propagate_task_deploy' was added to cluster.
this option allows to use legacy task adapatation algorithm
to make tasks from granular deployment LCM ready on the flight.
Also the same aproach is used for adaptation legacy plugin tasks.
Change-Id: Ib212bd906acc0e6915e3c14e4741b306bdedaa98
Closes-Bug: 1572276
nailgun.errors have a huge set of exceptions but without hierarchy. This
patch remove exception generation from dict and make it explicitly with
python classes and add some exceptions hierarchy. Now all network errors
inherit from NetworkException and same for other exceptions.
Change-Id: I9a2c6b358ea02a16711da74562308664ad7aed97
Closes-bug: #1566195
plugins adapter has legacy .deployment_tasks attribute
that was replaced with get_deployment_tasks() method
Change-Id: I69cd2e93d42dfe235bd0e96dfc98f3286622a444
Partial-Bug: #1567504
Avoid reading `tasks.yaml` every time
Fix missing of `environment.yaml` file sync for plugins V(1,2)
Change-Id: Id3aed7b943b6942c223797a40d3d0214834ba31f
Closes-bug: #1527320
Following handlers are extended with graph_type query
string parameter:
/releases/<release_id>/deployment_tasks/
/clusters/<cluster_id>/deployment_tasks/
/clusters/<cluster_id>/serialized_tasks/
/clusters/<cluster_id>/deploy_tasks/graph.gv
This parameter allows handler to use deployment graph data
from the scope of the given graph type.
Change-Id: I0e9af118af9aff57df8efa1e9139134566660c4b
Implements: blueprint custom-graph-execution
Now it is possible to update deployment graph name
and tasks keeping the graph database ID intact.
DeploymentGraph.update and DeploymentGraph.create_for_model
methods are inroduced that allow to update or create graph.
Change-Id: I8170569d9283d226f53b5fb2879a5ff9ee7bb984
Implements: blueprint custom-graph-execution
Nailgun was failing on deployemnt when plugins has tasks.yaml
with no content. Now it's working properly
Change-Id: I5ab50717964d8bf37383c63bb14ef0a6c7efcad4
Closes-Bug: #1557572
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
Plugins v5.0.0 use task-based deployment directives using tasks
v2.0.0 with cross-dependencies and per-task strategy.
V4.0.0 allows both experimental and granular deployment directives
(tasks v1.0.0 and tasks v2.0.0) and using them according to `task_deploy`
environment flag setting.
Change-Id: I697dc22a58a9ff2ad8bd9d955d2b2c5351c746ab
Closes-Bug: #1533771
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 is redesign of plugins architecture in order to store
the plugin's attributes in a separate table, not in cluster
attributes, so it will be possible to remove connection between
plugin and cluster when a plugin gets deleted.
Added ability to work with different versions of a plugin.
User can choose the preferred version in UI.
The test "test_plugin_generator" was removed because no longer
relevant.
Closes-Bug: #1440046
Implements: blueprint store-plugins-attributes
Change-Id: I52115f130bf1c7c80c66e18d0bf9f7acb16dd56c
This achieved by adding a new restriction for plugin-provided
roles which prevents plugin to be disabled if env contains
nodes with plugin-provided roles
Closes-Bug: #1483633
Change-Id: I8e2502df2a9d84934730bc4681fc3c295fac450a
Implement functionality for merging plugin volumes metadata
with release volumes metadata and using it in Volumes Manager.
Implements: blueprint role-as-a-plugin
Change-Id: Ie8e1236e4aa38b8220d937febaa50d146c9caa2a
* add new test case for skipped tasks processing;
* fix code of `deployment_tasks` property so that it now doesn't fail if
`parameters` key is not present in task data
Change-Id: I7fcf4907b9db9c1771248f337cb319de4039add5
Implements: blueprint role-as-a-plugin
`get_deployment_tasks` for nailgun cluster object modified so that it
now by default (if deployment graph was not defined for the cluster)
returns summary list of deployment task for release and all enabled for
the cluster plugins.
Change-Id: I4e0b063a80a6d94bfb792b80cd6880a2a471f135
Implements: blueprint role-as-a-plugin
Provides implementation for new plugin configuration
file support network_roles.yaml
* New column network_roles_metadata in Plugin model
* Loading network_roles.yaml to DB
Implements: blueprint vip-reservation
Change-Id: Id67a655bd090042b71b66d0512ff8cb9c6e9f2d7