summaryrefslogtreecommitdiff
path: root/heat/tests/openstack/nova/test_server.py
diff options
context:
space:
mode:
Diffstat (limited to 'heat/tests/openstack/nova/test_server.py')
-rw-r--r--heat/tests/openstack/nova/test_server.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py
index 529a22d57..1ed657ff2 100644
--- a/heat/tests/openstack/nova/test_server.py
+++ b/heat/tests/openstack/nova/test_server.py
@@ -2363,6 +2363,26 @@ class ServersTest(common.HeatTestCase):
self.assertEqual((server.UPDATE, server.COMPLETE), server.state)
@mock.patch.object(servers.Server, 'prepare_for_replace')
+ @mock.patch.object(nova.NovaClientPlugin, 'client')
+ def test_server_update_server_userdata_rebuild(self, mock_create,
+ mock_replace):
+ stack_name = 'update_udreplace'
+ (tmpl, stack) = self._setup_test_stack(stack_name)
+ self.patchobject(servers.Server, 'check_update_complete',
+ return_value=True)
+
+ resource_defns = tmpl.resource_definitions(stack)
+ server = servers.Server('server_update_userdata_ignore',
+ resource_defns['WebServer'], stack)
+
+ update_props = tmpl.t['Resources']['WebServer']['Properties'].copy()
+ update_props['user_data'] = 'changed'
+ update_props['user_data_update_policy'] = 'REBUILD'
+ update_template = server.t.freeze(properties=update_props)
+ updater = scheduler.TaskRunner(server.update, update_template)
+ self.assertRaises(resource.UpdateReplace, updater)
+
+ @mock.patch.object(servers.Server, 'prepare_for_replace')
def test_server_update_image_replace(self, mock_replace):
stack_name = 'update_imgrep'
(tmpl, stack) = self._setup_test_stack(stack_name)