Correct processing of customized nodes
Since node can be customized with LCM deployment info, it's not needed to convert old serialization style to new. Change-Id: I4822745849925076cbcedbd028c9e37d91d1aa1c Closes-Bug: #1572965
This commit is contained in:
parent
1ce23a0f22
commit
8ed32e49c1
|
@ -667,8 +667,13 @@ class DeploymentLCMSerializer(DeploymentHASerializer90):
|
||||||
data = {}
|
data = {}
|
||||||
roles = []
|
roles = []
|
||||||
for role_data in node.replaced_deployment_info:
|
for role_data in node.replaced_deployment_info:
|
||||||
|
if 'role' in role_data:
|
||||||
|
# if replaced_deployment_info consists
|
||||||
|
# of old serialized info, the old info
|
||||||
|
# have serialized data per role
|
||||||
roles.append(role_data.pop('role'))
|
roles.append(role_data.pop('role'))
|
||||||
data = utils.dict_merge(data, role_data)
|
data = utils.dict_merge(data, role_data)
|
||||||
|
if roles:
|
||||||
data['roles'] = roles
|
data['roles'] = roles
|
||||||
yield data
|
yield data
|
||||||
|
|
||||||
|
|
|
@ -584,6 +584,22 @@ class TestDeploymentLCMSerialization90(
|
||||||
self.assertIn('plugins', node)
|
self.assertIn('plugins', node)
|
||||||
self.datadiff(plugins_data, node['plugins'], compare_sorted=True)
|
self.datadiff(plugins_data, node['plugins'], compare_sorted=True)
|
||||||
|
|
||||||
|
def test_serialize_with_customized(self):
|
||||||
|
objects.Cluster.prepare_for_deployment(self.cluster_db)
|
||||||
|
serialized = self.serializer.serialize(self.cluster_db, [self.node])
|
||||||
|
|
||||||
|
objects.Cluster.replace_deployment_info(self.cluster_db, serialized)
|
||||||
|
objects.Cluster.prepare_for_deployment(self.cluster_db)
|
||||||
|
cust_serialized = self.serializer.serialize(
|
||||||
|
self.cluster_db, [self.node])
|
||||||
|
|
||||||
|
for item in serialized:
|
||||||
|
if item['uid'] != consts.MASTER_NODE_UID:
|
||||||
|
self.assertIn(item, cust_serialized)
|
||||||
|
else:
|
||||||
|
item['cluster']['is_customized'] = True
|
||||||
|
self.assertIn(item, cust_serialized)
|
||||||
|
|
||||||
|
|
||||||
class TestDeploymentHASerializer90(
|
class TestDeploymentHASerializer90(
|
||||||
TestSerializer90Mixin,
|
TestSerializer90Mixin,
|
||||||
|
@ -602,6 +618,21 @@ class TestDeploymentHASerializer90(
|
||||||
for ceph_key in expected_keys:
|
for ceph_key in expected_keys:
|
||||||
self.assertIn(ceph_key, storage_attrs)
|
self.assertIn(ceph_key, storage_attrs)
|
||||||
|
|
||||||
|
def test_serialize_with_customized(self):
|
||||||
|
cluster = self.env.clusters[0]
|
||||||
|
serializer = self.create_serializer(cluster)
|
||||||
|
|
||||||
|
objects.Cluster.prepare_for_deployment(cluster)
|
||||||
|
serialized = serializer.serialize(cluster, cluster.nodes)
|
||||||
|
|
||||||
|
objects.Cluster.replace_deployment_info(cluster, serialized)
|
||||||
|
objects.Cluster.prepare_for_deployment(cluster)
|
||||||
|
cust_serialized = serializer.serialize(
|
||||||
|
cluster, cluster.nodes)
|
||||||
|
|
||||||
|
for item in serialized:
|
||||||
|
self.assertIn(item, cust_serialized)
|
||||||
|
|
||||||
|
|
||||||
class TestDeploymentTasksSerialization90(
|
class TestDeploymentTasksSerialization90(
|
||||||
TestSerializer90Mixin,
|
TestSerializer90Mixin,
|
||||||
|
|
Loading…
Reference in New Issue