Set network template for node during upgrade

When a node is moved (upgraded) from one cluster to another, its network
template is from now on updated accordingly.

Change-Id: I076b084283a5a221ac23e9c895ce61389018694c
Closes-Bug: #1492744
This commit is contained in:
Ilya Kharin 2015-11-24 16:58:48 +03:00
parent 937741577c
commit 1d2353ab17
2 changed files with 25 additions and 0 deletions

View File

@ -614,6 +614,7 @@ class Node(NailgunObject):
cls.update_pending_roles(instance, roles)
cls.remove_replaced_params(instance)
cls.assign_group(instance)
cls.set_network_template(instance)
db().flush()
@classmethod

View File

@ -196,6 +196,30 @@ class TestNodeObject(BaseIntegrationTest):
self.assertEqual([], node.roles)
self.assertItemsEqual(roles, node.pending_roles)
def test_update_cluster_assignment_with_templates_80(self):
cluster = self.env.create(
cluster_kwargs={'api': False},
nodes_kwargs=[{'role': 'controller'}] * 3)
new_cluster = self.env.create(
cluster_kwargs={'api': False},
release_kwargs={'version': '2015.1.0-8.0'},
)
net_template = self.env.read_fixtures(['network_template'])[0]
objects.Cluster.set_network_template(new_cluster, net_template)
new_group = objects.Cluster.get_default_group(new_cluster)
node = cluster.nodes[0]
roles = node.roles
objects.Node.update_cluster_assignment(node, new_cluster)
self.assertEqual(new_cluster.id, node.cluster_id)
self.assertEqual(new_group.id, node.group_id)
self.assertEqual([], node.roles)
self.assertItemsEqual(roles, node.pending_roles)
self.assertIsNotNone(node.network_template)
endpoints = node.network_template['templates']['common']['endpoints']
self.assertEqual([u'br-mgmt', u'br-fw-admin'], endpoints)
def test_adding_to_cluster_kernel_params_centos(self):
self.env.create(
release_kwargs={