X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=functest%2Futils%2Fopenstack_clean.py;h=ce61fcacf3aac95d5ce04daf5d8895ef624a4151;hb=6587f877a3c6e2954d9e32a0652c6f0d1d356ab7;hp=0c3ae3e32e7032791bbe07e58c19b5a43e741707;hpb=ba75838bd3e19e902caa826124b35b40bcbb3d78;p=functest.git diff --git a/functest/utils/openstack_clean.py b/functest/utils/openstack_clean.py index 0c3ae3e32..ce61fcacf 100755 --- a/functest/utils/openstack_clean.py +++ b/functest/utils/openstack_clean.py @@ -23,15 +23,16 @@ # import time + +import yaml + import functest.utils.functest_logger as ft_logger import functest.utils.openstack_utils as os_utils -import functest.utils.openstack_tacker as os_tacker -import yaml -import functest.utils.functest_constants as ft_constants +from functest.utils.constants import CONST logger = ft_logger.Logger("openstack_clean").getLogger() -OS_SNAPSHOT_FILE = ft_constants.OPENSTACK_SNAPSHOT_FILE +OS_SNAPSHOT_FILE = CONST.openstack_snapshot_file def separator(): @@ -48,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.") @@ -108,7 +114,7 @@ def remove_volumes(cinder_client, default_volumes): for volume in volumes: volume_id = getattr(volume, 'id') - volume_name = getattr(volume, 'display_name') + volume_name = getattr(volume, 'name') logger.debug("'%s', ID=%s " % (volume_name, volume_id)) if (volume_id not in default_volumes and volume_name not in default_volumes.values()): @@ -372,109 +378,6 @@ def remove_tenants(keystone_client, default_tenants): "NOT be deleted.") -def remove_tacker_vnfds(tacker_client, default_vnfds): - logger.debug("Removing Tacker VNFDs...") - vnfds = os_tacker.list_vnfds(tacker_client, verbose=True)['vnfds'] - if vnfds is None: - logger.debug("There are no Tacker VNFDs in the deployment. ") - return - - for vnfd in vnfds: - vnfd_name = vnfd['name'] - vnfd_id = vnfd['id'] - logger.debug("'%s', ID=%s " % (vnfd_name, vnfd_id)) - if (vnfd_id not in default_vnfds and - vnfd_name not in default_vnfds.values()): - logger.debug(" Removing '%s'..." % vnfd_name) - deleted = os_tacker.delete_vnfd(tacker_client, vnfd_id=vnfd_id) - if deleted is not None: - logger.debug(" > Done!") - else: - logger.error("There has been a problem removing the " - "VNFD '%s'(%s)..." % (vnfd_name, vnfd_id)) - else: - logger.debug(" > this is a default VNFD and will " - "NOT be deleted.") - - -def remove_tacker_vnfs(tacker_client, default_vnfs): - logger.debug("Removing Tacker VNFs...") - vnfs = os_tacker.list_vnfs(tacker_client, verbose=True)['vnfs'] - if vnfs is None: - logger.debug("There are no Tacker VNFs in the deployment. ") - return - - for vnf in vnfs: - vnf_name = vnf['name'] - vnf_id = vnf['id'] - logger.debug("'%s', ID=%s " % (vnf_name, vnf_id)) - if (vnf_id not in default_vnfs and - vnf_name not in default_vnfs.values()): - logger.debug(" Removing '%s'..." % vnf_name) - deleted = os_tacker.delete_vnf(tacker_client, vnf_id=vnf_id) - if deleted is not None: - logger.debug(" > Done!") - else: - logger.error("There has been a problem removing the " - "VNF '%s'(%s)..." % (vnf_name, vnf_id)) - else: - logger.debug(" > this is a default VNF and will " - "NOT be deleted.") - - -def remove_tacker_sfcs(tacker_client, default_sfcs): - logger.debug("Removing Tacker SFCs...") - sfcs = os_tacker.list_sfcs(tacker_client, verbose=True)['sfcs'] - if sfcs is None: - logger.debug("There are no Tacker SFCs in the deployment. ") - return - - for sfc in sfcs: - sfc_name = sfc['name'] - sfc_id = sfc['id'] - logger.debug("'%s', ID=%s " % (sfc_name, sfc_id)) - if (sfc_id not in default_sfcs and - sfc_name not in default_sfcs.values()): - logger.debug(" Removing '%s'..." % sfc_name) - deleted = os_tacker.delete_sfc(tacker_client, sfc_id=sfc_id) - if deleted is not None: - logger.debug(" > Done!") - else: - logger.error("There has been a problem removing the " - "SFC '%s'(%s)..." % (sfc_name, sfc_id)) - else: - logger.debug(" > this is a default SFC and will " - "NOT be deleted.") - - -def remove_tacker_sfc_classifiers(tacker_client, default_sfc_classifiers): - logger.debug("Removing Tacker SFC classifiers...") - sfc_clfs = os_tacker.list_sfc_classifiers( - tacker_client, verbose=True)['sfc_classfiers'] - if sfc_clfs is None: - logger.debug("There are no Tacker SFC classifiers in the deployment.") - return - - for sfc_clf in sfc_clfs: - sfc_clf_name = sfc_clf['name'] - sfc_clf_id = sfc_clf['id'] - logger.debug("'%s', ID=%s " % (sfc_clf_name, sfc_clf_id)) - if (sfc_clf_id not in default_sfc_classifiers and - sfc_clf_name not in default_sfc_classifiers.values()): - logger.debug(" Removing '%s'..." % sfc_clf_name) - deleted = os_tacker.delete_sfc_classifier( - tacker_client, sfc_clf_id=sfc_clf_id) - if deleted is not None: - logger.debug(" > Done!") - else: - logger.error("There has been a problem removing the " - "SFC classifier '%s'(%s)..." - % (sfc_clf_name, sfc_clf_id)) - else: - logger.debug(" > this is a default SFC classifier and will " - "NOT be deleted.") - - def main(): logger.info("Cleaning OpenStack resources...") @@ -482,7 +385,6 @@ def main(): neutron_client = os_utils.get_neutron_client() keystone_client = os_utils.get_keystone_client() cinder_client = os_utils.get_cinder_client() - tacker_client = os_tacker.get_tacker_client() try: with open(OS_SNAPSHOT_FILE) as f: @@ -501,10 +403,6 @@ def main(): default_floatingips = snapshot_yaml.get('floatingips') default_users = snapshot_yaml.get('users') default_tenants = snapshot_yaml.get('tenants') - default_vnfds = snapshot_yaml.get('vnfds') - default_vnfs = snapshot_yaml.get('vnfs') - default_sfcs = snapshot_yaml.get('sfcs') - default_sfc_classifiers = snapshot_yaml.get('sfc_classifiers') if not os_utils.check_credentials(): logger.error("Please source the openrc credentials and run " @@ -527,16 +425,6 @@ def main(): separator() remove_tenants(keystone_client, default_tenants) separator() - # Note: Delete in this order - # 1. Classifiers, 2. SFCs, 3. VNFs, 4. VNFDs - remove_tacker_sfc_classifiers(tacker_client, default_sfc_classifiers) - separator() - remove_tacker_sfcs(tacker_client, default_sfcs) - separator() - remove_tacker_vnfs(tacker_client, default_vnfs) - separator() - remove_tacker_vnfds(tacker_client, default_vnfds) - separator() if __name__ == '__main__':