Send the list of all enabled plugins into astute

Hiera plugin extension needs a way to get a list of all enabled plugins in
cluster from astute.yaml during the deployment.

Change-Id: I819bf8e547ecd8eeabffefda4579c2a3e73d0fcf
Closes-Bug: #1528212
This commit is contained in:
Andriy Popovych 2015-12-21 20:10:33 +02:00 committed by Andriy Popovych
parent fe53afff95
commit 0af2161acd
3 changed files with 45 additions and 5 deletions

View File

@ -137,6 +137,8 @@ class DeploymentMultinodeSerializer(object):
net_common_attrs = net_serializer.get_common_attrs(cluster, attrs)
attrs = utils.dict_merge(attrs, net_common_attrs)
self.inject_list_of_plugins(attrs, cluster)
return attrs
def current_release(self, cluster):
@ -327,6 +329,10 @@ class DeploymentMultinodeSerializer(object):
for node in serialized_nodes:
node['tasks'] = self.task_graph.deploy_task_serialize(node)
def inject_list_of_plugins(self, attributes, cluster):
plugins = objects.ClusterPlugins.get_enabled(cluster.id)
attributes['plugins'] = [p['name'] for p in plugins]
class DeploymentHASerializer(DeploymentMultinodeSerializer):
"""Serializer for HA mode."""

View File

@ -101,7 +101,8 @@ class TestHandlers(BaseIntegrationTest):
'deployment_id': cluster_db.id,
'openstack_version_prev': None,
'openstack_version': cluster_db.release.version,
'fuel_version': cluster_db.fuel_version
'fuel_version': cluster_db.fuel_version,
'plugins': []
}
cluster_attrs = objects.Attributes.merged_attrs_values(
cluster_db.attributes
@ -465,7 +466,8 @@ class TestHandlers(BaseIntegrationTest):
'openstack_version_prev': None,
'openstack_version': cluster_db.release.version,
'fuel_version': cluster_db.fuel_version,
'tasks': []
'tasks': [],
'plugins': []
}
cluster_attrs = objects.Attributes.merged_attrs_values(
@ -952,7 +954,8 @@ class TestHandlers(BaseIntegrationTest):
'deployment_id': cluster_db.id,
'openstack_version_prev': None,
'openstack_version': cluster_db.release.version,
'fuel_version': cluster_db.fuel_version
'fuel_version': cluster_db.fuel_version,
'plugins': []
}
cluster_attrs = objects.Attributes.merged_attrs_values(
cluster_db.attributes

View File

@ -344,8 +344,39 @@ class TestDeploymentAttributesSerialization80(
self.cluster_db, self.cluster_db.nodes)
for node in serialized_for_astute:
self.assertIn("node_volumes", node)
self.assertEqual(expected_node_volumes_hash,
node["node_volumes"])
self.assertItemsEqual(
expected_node_volumes_hash, node["node_volumes"])
def test_attributes_contains_plugins(self):
self.env.create_plugin(
cluster=self.cluster_db,
name='plugin_1',
package_version='4.0.0',
fuel_version=['8.0'])
self.env.create_plugin(
cluster=self.cluster_db,
name='plugin_2',
package_version='4.0.0',
fuel_version=['8.0'])
self.env.create_plugin(
cluster=self.cluster_db,
enabled=False,
name='plugin_3',
package_version='4.0.0',
fuel_version=['8.0'])
expected_plugins_list = ['plugin_1', 'plugin_2']
self.env.create_node(
cluster_id=self.cluster_db.id,
roles=['compute']
)
objects.Cluster.prepare_for_deployment(self.cluster_db)
serialized_for_astute = self.serializer.serialize(
self.cluster_db, self.cluster_db.nodes)
for node in serialized_for_astute:
self.assertIn('plugins', node)
self.assertItemsEqual(
expected_plugins_list, node['plugins'])
class TestMultiNodeGroupsSerialization80(BaseDeploymentSerializer):