Move change_env_settings function from octane to cluster upgrade extension
* change_env_settings function was moved to cluster upgrade extention
* merge generated attributes code was written
Change-Id: I6d1e27b8b0c01f3251067bc88931cd2354feb5ce
Partial-Bug: #1602587
(cherry picked from commit dc2e3f9309
)
This commit is contained in:
parent
da0e1d2cca
commit
a78f4348f8
|
@ -97,8 +97,16 @@ class TestUpgradeHelperCloneCluster(base_tests.BaseCloneClusterTest):
|
|||
|
||||
self.helper.copy_attributes(self.src_cluster, new_cluster)
|
||||
|
||||
self.assertEqual(self.src_cluster.generated_attrs,
|
||||
new_cluster.generated_attrs)
|
||||
self.assertNotEqual(new_cluster.generated_attrs.get('provision'),
|
||||
self.src_cluster.generated_attrs.get('provision'))
|
||||
|
||||
# We make image_data in src_cluster and in new_cluster the same
|
||||
# to validate that all other generated attributes are equal
|
||||
generated_attrs = copy.deepcopy(self.src_cluster.generated_attrs)
|
||||
generated_attrs['provision']['image_data'] = \
|
||||
new_cluster.generated_attrs['provision']['image_data']
|
||||
|
||||
self.assertEqual(generated_attrs, new_cluster.generated_attrs)
|
||||
editable_attrs = self.src_cluster.editable_attrs
|
||||
for section, params in six.iteritems(new_cluster.editable_attrs):
|
||||
if section == "repo_setup":
|
||||
|
@ -211,3 +219,22 @@ class TestUpgradeHelperCloneCluster(base_tests.BaseCloneClusterTest):
|
|||
self.helper.copy_attributes(self.src_cluster, new_cluster)
|
||||
self._check_dns_and_ntp_list_values(
|
||||
new_cluster, ["4", "5", "6"], ["1", "2", "3"])
|
||||
|
||||
def test_change_env_settings(self):
|
||||
new_cluster = self.helper.create_cluster_clone(self.src_cluster,
|
||||
self.data)
|
||||
self.helper.copy_attributes(self.src_cluster, new_cluster)
|
||||
attrs = new_cluster.attributes
|
||||
self.helper.change_env_settings(self.src_cluster, new_cluster)
|
||||
self.assertEqual('image',
|
||||
attrs['editable']['provision']['method']['value'])
|
||||
|
||||
def test_change_env_settings_no_editable_provision(self):
|
||||
new_cluster = self.helper.create_cluster_clone(self.src_cluster,
|
||||
self.data)
|
||||
self.helper.copy_attributes(self.src_cluster, new_cluster)
|
||||
attrs = new_cluster.attributes
|
||||
attrs['editable']['provision']['method']['value'] = 'cobbler'
|
||||
self.helper.change_env_settings(self.src_cluster, new_cluster)
|
||||
self.assertEqual('image',
|
||||
attrs['editable']['provision']['method']['value'])
|
||||
|
|
|
@ -53,6 +53,13 @@ def merge_attributes(a, b):
|
|||
return attrs
|
||||
|
||||
|
||||
def merge_generated_attrs(new_attrs, orig_attrs):
|
||||
# skip attributes that should be generated for new cluster
|
||||
attrs = copy.deepcopy(orig_attrs)
|
||||
attrs.pop('provision', None)
|
||||
return utils.dict_merge(new_attrs, attrs)
|
||||
|
||||
|
||||
def merge_nets(a, b):
|
||||
new_settings = copy.deepcopy(b)
|
||||
source_networks = dict((n["name"], n) for n in a["networks"])
|
||||
|
@ -90,6 +97,7 @@ class UpgradeHelper(object):
|
|||
cls.copy_network_config(orig_cluster, new_cluster)
|
||||
relations.UpgradeRelationObject.create_relation(orig_cluster.id,
|
||||
new_cluster.id)
|
||||
cls.change_env_settings(orig_cluster, new_cluster)
|
||||
return new_cluster
|
||||
|
||||
@classmethod
|
||||
|
@ -110,13 +118,18 @@ class UpgradeHelper(object):
|
|||
# version to another. A set of this kind of steps
|
||||
# should define an upgrade path of a particular
|
||||
# cluster.
|
||||
new_cluster.generated_attrs = utils.dict_merge(
|
||||
new_cluster.generated_attrs = merge_generated_attrs(
|
||||
new_cluster.generated_attrs,
|
||||
orig_cluster.generated_attrs)
|
||||
new_cluster.editable_attrs = merge_attributes(
|
||||
orig_cluster.editable_attrs,
|
||||
new_cluster.editable_attrs)
|
||||
|
||||
@classmethod
|
||||
def change_env_settings(cls, orig_cluster, new_cluster):
|
||||
attrs = new_cluster.attributes
|
||||
attrs['editable']['provision']['method']['value'] = 'image'
|
||||
|
||||
@classmethod
|
||||
def transform_vips_for_net_groups_70(cls, vips):
|
||||
"""Rename or remove types of VIPs for 7.0 network groups.
|
||||
|
|
Loading…
Reference in New Issue