diff options
author | Feilong Wang <flwang@catalyst.net.nz> | 2018-07-06 06:51:56 +1200 |
---|---|---|
committer | Rico Lin <rico.lin.guanyu@gmail.com> | 2018-11-13 11:21:04 +0000 |
commit | f11d2073ef01517a5be2ea96ad40a84bb0c7f525 (patch) | |
tree | 918387f082ffe0621f58c00b4df92dabfd08021e | |
parent | 7524e615b2b735b26da44a45c356de801eb21bec (diff) | |
download | heat-f11d2073ef01517a5be2ea96ad40a84bb0c7f525.tar.gz |
Fix multi region issue for software deployment
Except commit Iec6f3606c9fdf8474f393b0990356f34d38bcf75 we still
need this one to make sure the region name can be populated as
deployment metadata.
Task: 22854
Story: 2002781
Depends-On: https://review.openstack.org/#/c/617593
Change-Id: Id87935bdb1484e66f6066361d80e245d08d9ab66
(cherry picked from commit 73d5b2cabe74faa2a55deef48928b1a46658ac21)
-rw-r--r-- | heat/engine/resources/server_base.py | 8 | ||||
-rw-r--r-- | heat/tests/openstack/heat/test_deployed_server.py | 7 | ||||
-rw-r--r-- | heat/tests/openstack/nova/test_server.py | 21 |
3 files changed, 27 insertions, 9 deletions
diff --git a/heat/engine/resources/server_base.py b/heat/engine/resources/server_base.py index 364daa54a..983efe298 100644 --- a/heat/engine/resources/server_base.py +++ b/heat/engine/resources/server_base.py @@ -67,6 +67,8 @@ class BaseServer(stack_user.StackUser): occ = meta['os-collect-config'] collectors = list(self.default_collectors) occ['collectors'] = collectors + region_name = (self.context.region_name or + cfg.CONF.region_name_for_services) # set existing values to None to override any boot-time config occ_keys = ('heat', 'zaqar', 'cfn', 'request') @@ -85,7 +87,8 @@ class BaseServer(stack_user.StackUser): 'auth_url': self.context.auth_url, 'project_id': self.stack.stack_user_project_id, 'stack_id': self.stack.identifier().stack_path(), - 'resource_name': self.name}}) + 'resource_name': self.name, + 'region_name': region_name}}) collectors.append('heat') elif self.transport_zaqar_message(props): @@ -95,7 +98,8 @@ class BaseServer(stack_user.StackUser): 'password': self.password, 'auth_url': self.context.auth_url, 'project_id': self.stack.stack_user_project_id, - 'queue_id': queue_id}}) + 'queue_id': queue_id, + 'region_name': region_name}}) collectors.append('zaqar') elif self.transport_poll_server_cfn(props): diff --git a/heat/tests/openstack/heat/test_deployed_server.py b/heat/tests/openstack/heat/test_deployed_server.py index 9ca0813b4..c2a283d43 100644 --- a/heat/tests/openstack/heat/test_deployed_server.py +++ b/heat/tests/openstack/heat/test_deployed_server.py @@ -139,7 +139,8 @@ class DeployedServersTest(common.HeatTestCase): def _setup_test_stack(self, stack_name, test_templ=ds_tmpl): t = template_format.parse(test_templ) tmpl = template.Template(t, env=environment.Environment()) - stack = parser.Stack(utils.dummy_context(), stack_name, tmpl, + stack = parser.Stack(utils.dummy_context(region_name="RegionOne"), + stack_name, tmpl, stack_id=uuidutils.generate_uuid(), stack_user_project_id='8888') return (tmpl, stack) @@ -479,6 +480,7 @@ class DeployedServersTest(common.HeatTestCase): 'auth_url': 'http://server.test:5000/v2.0', 'password': server.password, 'project_id': '8888', + 'region_name': 'RegionOne', 'resource_name': 'server', 'stack_id': 'server_heat_s/%s' % stack.id, 'user_id': '1234' @@ -510,6 +512,7 @@ class DeployedServersTest(common.HeatTestCase): 'auth_url': 'http://server.test:5000/v2.0', 'password': server.password, 'project_id': '8888', + 'region_name': 'RegionOne', 'resource_name': 'server', 'stack_id': 'server_heat_s/%s' % stack.id, 'user_id': '1234' @@ -569,6 +572,7 @@ class DeployedServersTest(common.HeatTestCase): 'password': server.password, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', + 'region_name': 'RegionOne', 'queue_id': queue_id }, 'collectors': ['zaqar', 'local'] @@ -586,6 +590,7 @@ class DeployedServersTest(common.HeatTestCase): 'password': server.password, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', + 'region_name': 'RegionOne', 'queue_id': queue_id }, 'collectors': ['zaqar', 'local'], diff --git a/heat/tests/openstack/nova/test_server.py b/heat/tests/openstack/nova/test_server.py index bb4c1e2a2..1fe494f47 100644 --- a/heat/tests/openstack/nova/test_server.py +++ b/heat/tests/openstack/nova/test_server.py @@ -274,7 +274,8 @@ class ServersTest(common.HeatTestCase): env=environment.Environment( {'key_name': 'test'}), files=files) - stack = parser.Stack(utils.dummy_context(), stack_name, templ, + stack = parser.Stack(utils.dummy_context(region_name="RegionOne"), + stack_name, templ, stack_id=uuidutils.generate_uuid(), stack_user_project_id='8888') return templ, stack @@ -891,6 +892,7 @@ class ServersTest(common.HeatTestCase): 'auth_url': 'http://server.test:5000/v2.0', 'password': server.password, 'project_id': '8888', + 'region_name': 'RegionOne', 'resource_name': 'WebServer', 'stack_id': 'software_config_s/%s' % stack.id, 'user_id': '1234' @@ -910,6 +912,7 @@ class ServersTest(common.HeatTestCase): 'auth_url': 'http://server.test:5000/v2.0', 'password': server.password, 'project_id': '8888', + 'region_name': 'RegionOne', 'resource_name': 'WebServer', 'stack_id': 'software_config_s/%s' % stack.id, 'user_id': '1234' @@ -1061,7 +1064,8 @@ class ServersTest(common.HeatTestCase): 'password': server.password, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', - 'queue_id': queue_id + 'queue_id': queue_id, + 'region_name': 'RegionOne', }, 'collectors': ['ec2', 'zaqar', 'local'] }, @@ -1082,7 +1086,8 @@ class ServersTest(common.HeatTestCase): 'password': server.password, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', - 'queue_id': mock.ANY + 'queue_id': mock.ANY, + 'region_name': 'RegionOne', }, 'collectors': ['ec2', 'zaqar', 'local'] }, @@ -1102,7 +1107,8 @@ class ServersTest(common.HeatTestCase): 'password': server.password, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', - 'queue_id': queue_id + 'queue_id': queue_id, + 'region_name': 'RegionOne', }, 'collectors': ['ec2', 'zaqar', 'local'], 'polling_interval': 10 @@ -1768,7 +1774,7 @@ class ServersTest(common.HeatTestCase): 'metadata_url': None, 'path': None, 'secret_access_key': None, - 'stack_name': None + 'stack_name': None, }, 'request': { 'metadata_url': 'the_url', @@ -1789,6 +1795,7 @@ class ServersTest(common.HeatTestCase): 'auth_url': 'http://server.test:5000/v2.0', 'password': password, 'project_id': '8888', + 'region_name': 'RegionOne', 'resource_name': 'WebServer', 'stack_id': 'software_config_s/%s' % stack.id, 'user_id': '1234' @@ -1821,12 +1828,14 @@ class ServersTest(common.HeatTestCase): 'password': password_1, 'auth_url': 'http://server.test:5000/v2.0', 'project_id': '8888', - 'queue_id': server.data().get('metadata_queue_id') + 'queue_id': server.data().get('metadata_queue_id'), + 'region_name': 'RegionOne', }, 'heat': { 'auth_url': None, 'password': None, 'project_id': None, + 'region_name': None, 'resource_name': None, 'stack_id': None, 'user_id': None |