summaryrefslogtreecommitdiff
path: root/heat
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-09-22 11:47:46 +0000
committerGerrit Code Review <review@openstack.org>2017-09-22 11:47:46 +0000
commit1db776ab42649dbed55f08e4d1cf8e23a549e278 (patch)
tree09deb546496e232e6c87b8f55084147de9698cc3 /heat
parent559bc355fba538423bd9db4605dbb02e3ff6f4a5 (diff)
parent5f21edfc7116b26edf3d7f7ec6a660a014d98261 (diff)
downloadheat-1db776ab42649dbed55f08e4d1cf8e23a549e278.tar.gz
Merge "Allow only validate external resource template" into stable/ocata
Diffstat (limited to 'heat')
-rw-r--r--heat/engine/stack.py1
-rw-r--r--heat/tests/test_validate.py21
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())