diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-08-25 13:07:47 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-08-25 13:07:47 +0000 |
commit | 75e73bc7dc941a0224406d93d01448d56d250fdc (patch) | |
tree | 43a45e8af4c554cf74d13624fd75215c347871ff /contrib | |
parent | acc023e5f1a75da35635ebc6b30098a13b361db3 (diff) | |
parent | 90f764bd5d52862b048aa43bf00e1ce0583e6488 (diff) | |
download | heat-75e73bc7dc941a0224406d93d01448d56d250fdc.tar.gz |
Merge "Do not pass rich objects in CloudNetwork resource"
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/rackspace/rackspace/resources/cloudnetworks.py | 31 | ||||
-rw-r--r-- | contrib/rackspace/rackspace/tests/test_cloudnetworks.py | 7 |
2 files changed, 12 insertions, 26 deletions
diff --git a/contrib/rackspace/rackspace/resources/cloudnetworks.py b/contrib/rackspace/rackspace/resources/cloudnetworks.py index 0b7015e68..14e972632 100644 --- a/contrib/rackspace/rackspace/resources/cloudnetworks.py +++ b/contrib/rackspace/rackspace/resources/cloudnetworks.py @@ -97,6 +97,7 @@ class CloudNetwork(resource.Resource): def __init__(self, name, json_snippet, stack): resource.Resource.__init__(self, name, json_snippet, stack) self._network = None + self._delete_issued = False def network(self): if self.resource_id and not self._network: @@ -118,40 +119,24 @@ class CloudNetwork(resource.Resource): def handle_check(self): self.cloud_networks().get(self.resource_id) - def handle_delete(self): - '''Delete cloud network. - - Cloud Network doesn't have a status attribute, and there is a non-zero - window between the deletion of a server and the acknowledgement from - the cloud network that it's no longer in use, so it needs some way to - keep track of when the delete call was successfully issued. - ''' - network_info = { - 'delete_issued': False, - 'network': self.network(), - } - return network_info - - def check_delete_complete(self, network_info): - network = network_info['network'] + def check_delete_complete(self, cookie): + try: + network = self.cloud_networks().get(self.resource_id) + except NotFound: + return True if not network: return True - if not network_info['delete_issued']: + if not self._delete_issued: try: network.delete() except NetworkInUse: LOG.warn(_LW("Network '%s' still in use."), network.id) else: - network_info['delete_issued'] = True + self._delete_issued = True return False - try: - network.get() - except NotFound: - return True - return False def validate(self): diff --git a/contrib/rackspace/rackspace/tests/test_cloudnetworks.py b/contrib/rackspace/rackspace/tests/test_cloudnetworks.py index 80623918b..d3fb64748 100644 --- a/contrib/rackspace/rackspace/tests/test_cloudnetworks.py +++ b/contrib/rackspace/rackspace/tests/test_cloudnetworks.py @@ -153,7 +153,9 @@ class CloudNetworkTest(common.HeatTestCase): fake_network = res.network() fake_network.delete = mock.Mock() fake_network.delete.side_effect = [cloudnetworks.NetworkInUse(), True] - fake_network.get = mock.Mock(side_effect=cloudnetworks.NotFound()) + mock_client.return_value = fake_network + fake_network.get = mock.Mock() + fake_network.get.side_effect = [cloudnetworks.NotFound()] scheduler.TaskRunner(res.delete)() self.assertEqual((res.DELETE, res.COMPLETE), res.state) @@ -161,8 +163,7 @@ class CloudNetworkTest(common.HeatTestCase): def test_delete_not_complete(self, mock_client): self._setup_stack(mock_client) res = self.stack['cnw'] - fake_network = res.network() - fake_network.get = mock.Mock() + mock_client.get = mock.Mock() task = res.handle_delete() self.assertFalse(res.check_delete_complete(task)) |