diff options
author | Jenkins <jenkins@review.openstack.org> | 2017-09-22 11:47:46 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-09-22 11:47:46 +0000 |
commit | 1db776ab42649dbed55f08e4d1cf8e23a549e278 (patch) | |
tree | 09deb546496e232e6c87b8f55084147de9698cc3 /heat | |
parent | 559bc355fba538423bd9db4605dbb02e3ff6f4a5 (diff) | |
parent | 5f21edfc7116b26edf3d7f7ec6a660a014d98261 (diff) | |
download | heat-1db776ab42649dbed55f08e4d1cf8e23a549e278.tar.gz |
Merge "Allow only validate external resource template" into stable/ocata
Diffstat (limited to 'heat')
-rw-r--r-- | heat/engine/stack.py | 1 | ||||
-rw-r--r-- | heat/tests/test_validate.py | 21 |
2 files changed, 22 insertions, 0 deletions
diff --git a/heat/engine/stack.py b/heat/engine/stack.py index 9a269e176..3f8fbc7be 100644 --- a/heat/engine/stack.py +++ b/heat/engine/stack.py @@ -845,6 +845,7 @@ class Stack(collections.Mapping): # Don't validate identical definitions multiple times if res.name not in unique_defn_names: continue + result = None try: if self.resource_validate: if res.external_id is not None: diff --git a/heat/tests/test_validate.py b/heat/tests/test_validate.py index 0fc53feb3..51b505387 100644 --- a/heat/tests/test_validate.py +++ b/heat/tests/test_validate.py @@ -899,6 +899,16 @@ outputs: ''' +test_template_external_rsrc = ''' +heat_template_version: ocata + +resources: + random_str: + type: OS::Nova::Server + external_id: foobar +''' + + class ValidateTest(common.HeatTestCase): def setUp(self): super(ValidateTest, self).setUp() @@ -1746,3 +1756,14 @@ class ValidateTest(common.HeatTestCase): ex = webob.exc.HTTPBadRequest(explanation=msg) self.assertIsInstance(res, webob.exc.HTTPBadRequest) self.assertEqual(ex.explanation, res.explanation) + + def test_validate_allowed_external_rsrc(self): + t = template_format.parse(test_template_external_rsrc) + template = tmpl.Template(t) + stack = parser.Stack(self.ctx, 'test_stack', template) + + with mock.patch( + 'heat.engine.resources.server_base.BaseServer._show_resource', + return_value={'id': 'foobar'} + ): + self.assertIsNone(stack.validate()) |