diff --git a/smoketests/base.py b/smoketests/base.py index 93f78f5dcf9f..69222878b908 100644 --- a/smoketests/base.py +++ b/smoketests/base.py @@ -72,11 +72,13 @@ class SmokeTestCase(unittest.TestCase): else: return False - def wait_for_not_running(self, instance, tries=60, wait=1): - """Wait for instance to not be running""" + def wait_for_deleted(self, instance, tries=60, wait=1): + """Wait for instance to be deleted""" for x in xrange(tries): - instance.update() - if not instance.state.startswith('running'): + try: + #NOTE(dprince): raises exception when instance id disappears + instance.update(validate=True) + except ValueError: return True time.sleep(wait) else: diff --git a/smoketests/test_netadmin.py b/smoketests/test_netadmin.py index 4215f705d083..72f8925682cb 100644 --- a/smoketests/test_netadmin.py +++ b/smoketests/test_netadmin.py @@ -196,7 +196,7 @@ class SecurityGroupTests(base.UserSmokeTestCase): self.conn.disassociate_address(self.data['public_ip']) self.conn.delete_key_pair(TEST_KEY) self.conn.terminate_instances([self.data['instance'].id]) - self.wait_for_not_running(self.data['instance']) + self.wait_for_deleted(self.data['instance']) self.conn.delete_security_group(TEST_GROUP) groups = self.conn.get_all_security_groups() self.assertFalse(TEST_GROUP in [group.name for group in groups])