Merge "Extended the timeout for Opera"
[functest.git] / functest / utils / openstack_clean.py
index b1ad966..29106d9 100755 (executable)
 
 import time
 
+import logging
 import yaml
 
-import functest.utils.functest_logger as ft_logger
 import functest.utils.openstack_utils as os_utils
 from functest.utils.constants import CONST
 
-logger = ft_logger.Logger("openstack_clean").getLogger()
+logger = logging.getLogger(__name__)
 
 OS_SNAPSHOT_FILE = CONST.openstack_snapshot_file
 
@@ -49,9 +49,14 @@ def remove_instances(nova_client, default_instances):
     for instance in instances:
         instance_name = getattr(instance, 'name')
         instance_id = getattr(instance, 'id')
+        instance_status = getattr(instance, 'status')
+        instance_state = getattr(instance, 'OS-EXT-STS:task_state')
+
         logger.debug("'%s', ID=%s " % (instance_name, instance_id))
         if (instance_id not in default_instances and
-                instance_name not in default_instances.values()):
+                instance_name not in default_instances.values() and
+                instance_status != 'DELETED' and
+                (instance_status != 'BUILD' or instance_state != 'deleting')):
             logger.debug("Removing instance '%s' ..." % instance_id)
             if os_utils.delete_instance(nova_client, instance_id):
                 logger.debug("  > Request sent.")
@@ -397,7 +402,7 @@ def main():
     default_security_groups = snapshot_yaml.get('secgroups')
     default_floatingips = snapshot_yaml.get('floatingips')
     default_users = snapshot_yaml.get('users')
-    default_tenants = snapshot_yaml.get('tenants')
+    default_tenants = snapshot_yaml.get('tenants')
 
     if not os_utils.check_credentials():
         logger.error("Please source the openrc credentials and run "
@@ -418,11 +423,10 @@ def main():
     separator()
     remove_users(keystone_client, default_users)
     separator()
-    # TODO (Helen) tenant does not exist in V3
-    # need to figure our anohter general verification point
-    # remove_tenants(keystone_client, default_tenants)
-    # separator()
+    remove_tenants(keystone_client, default_tenants)
+    separator()
 
 
 if __name__ == '__main__':
+    logging.basicConfig()
     main()