diff options
author | Zuul <zuul@review.opendev.org> | 2020-07-27 08:28:15 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-07-27 08:28:15 +0000 |
commit | ec6cd9ed001f46198684c7b477a4e2334236d474 (patch) | |
tree | 5def27f160d044df81cfe2eb3ccab8b93179e211 | |
parent | bcfb92d9272e40c0c67c4d9e93ea51f8515edf50 (diff) | |
parent | 9d9ca36072461d1b436a104bc6e2a6bb5df175bb (diff) | |
download | heat-ec6cd9ed001f46198684c7b477a4e2334236d474.tar.gz |
Merge "Check external resources after creation" into stable/ussuri
-rw-r--r-- | heat/engine/resource.py | 2 | ||||
-rw-r--r-- | heat/tests/generic_resource.py | 6 | ||||
-rw-r--r-- | heat/tests/test_resource.py | 9 |
3 files changed, 16 insertions, 1 deletions
diff --git a/heat/engine/resource.py b/heat/engine/resource.py index 31e9ca03a..8d0f04f42 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -1206,7 +1206,7 @@ class Resource(status.ResourceStatus): yield self._do_action(self.ADOPT, resource_data={ 'resource_id': self.external_id}) - self.check() + yield self.check() return # This method can be called when we replace a resource, too. In that diff --git a/heat/tests/generic_resource.py b/heat/tests/generic_resource.py index 5f98af74a..4bad64ea2 100644 --- a/heat/tests/generic_resource.py +++ b/heat/tests/generic_resource.py @@ -60,6 +60,12 @@ class GenericResource(resource.Resource): self.type()) +class CheckableResource(GenericResource): + def handle_check(self): + LOG.warning(('Checking generic resource (Type "%s")'), + self.type()) + + class CancellableResource(GenericResource): def check_create_complete(self, cookie): return True diff --git a/heat/tests/test_resource.py b/heat/tests/test_resource.py index 1bac44654..2d30bd464 100644 --- a/heat/tests/test_resource.py +++ b/heat/tests/test_resource.py @@ -366,6 +366,15 @@ class ResourceTest(common.HeatTestCase): self.assertEqual((res.CHECK, res.COMPLETE), res.state) self.assertEqual('f00d', res.resource_id) + def test_create_from_external_with_check(self): + tmpl = rsrc_defn.ResourceDefinition( + 'test_resource', 'GenericResourceType', + external_id='f00d') + res = generic_rsrc.CheckableResource('test_resource', tmpl, self.stack) + scheduler.TaskRunner(res.create)() + self.assertEqual((res.CHECK, res.COMPLETE), res.state) + self.assertEqual('f00d', res.resource_id) + def test_create_from_external_not_found(self): external_id = 'f00d' tmpl = rsrc_defn.ResourceDefinition( |