Added list of packages to provision info

Provision info already contains list of packages as
string, but fa_builder expects list and conversion from
string to list was done by using yaql expression.
This patch moves this conversion to nailgun side.

Change-Id: I1ad44b7f2e69edbb8b8e28fd7840010af2594cd7
Closes-Bug: 1630275
This commit is contained in:
Bulat Gaifullin 2016-10-04 18:04:01 +03:00 committed by Bulat Gaifullin
parent 78fbccc9ac
commit b7b2dfffbf
3 changed files with 19 additions and 4 deletions

View File

@ -62,7 +62,7 @@ from nailgun.orchestrator.nova_serializers import \
from nailgun.orchestrator.nova_serializers import \
NovaNetworkDeploymentSerializer70
from nailgun.orchestrator.provisioning_serializers import \
ProvisioningSerializer90
ProvisionLCMSerializer
class DeploymentMultinodeSerializer(object):
@ -742,7 +742,7 @@ class DeploymentLCMSerializer(DeploymentHASerializer90):
),
key=lambda x: self._priorities[x.config_type]
)
self._provision_serializer = ProvisioningSerializer90()
self._provision_serializer = ProvisionLCMSerializer()
def finalize(self):
self._configs = None

View File

@ -479,3 +479,15 @@ class ProvisioningSerializer90(ProvisioningSerializer80):
serialized_node['ks_meta']['user_accounts'].append(root_user_dict)
return serialized_node
class ProvisionLCMSerializer(ProvisioningSerializer90):
@classmethod
def serialize_cluster(cls, cluster, cluster_attrs):
cluster_info = super(ProvisionLCMSerializer, cls).serialize_cluster(
cluster, cluster_attrs
)
cluster_info['packages'] = cls._make_provisioning_package_list(
cluster_attrs['provision']
)
return cluster_info

View File

@ -637,10 +637,13 @@ class TestDeploymentLCMSerialization90(
node_info = next(x for x in serialized['nodes']
if x['uid'] == self.node.uid)
self.assertIn('provision', node_info)
provision_info = node_info['provision']
node_provision_info = node_info['provision']
# check that key options present in provision section
self.assertIn('ks_meta', provision_info)
self.assertIn('ks_meta', node_provision_info)
self.assertIn('engine', serialized['common']['provision'])
provision_info = serialized['common']['provision']
self.assertIn('packages', provision_info)
self.assertIsInstance(provision_info['packages'], list)
def test_deleted_field_present_only_for_deleted_nodes(self):
objects.Cluster.prepare_for_deployment(self.cluster_db)