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,9 +667,14 @@ class DeploymentLCMSerializer(DeploymentHASerializer90):
|
||||
data = {}
|
||||
roles = []
|
||||
for role_data in node.replaced_deployment_info:
|
||||
roles.append(role_data.pop('role'))
|
||||
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'))
|
||||
data = utils.dict_merge(data, role_data)
|
||||
data['roles'] = roles
|
||||
if roles:
|
||||
data['roles'] = roles
|
||||
yield data
|
||||
|
||||
def serialize_nodes(self, nodes):
|
||||
|
@ -584,6 +584,22 @@ class TestDeploymentLCMSerialization90(
|
||||
self.assertIn('plugins', node)
|
||||
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(
|
||||
TestSerializer90Mixin,
|
||||
@ -602,6 +618,21 @@ class TestDeploymentHASerializer90(
|
||||
for ceph_key in expected_keys:
|
||||
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(
|
||||
TestSerializer90Mixin,
|
||||
|
Loading…
Reference in New Issue
Block a user