diff options
Diffstat (limited to 'sfc/lib/cleanup.py')
-rw-r--r-- | sfc/lib/cleanup.py | 92 |
1 files changed, 44 insertions, 48 deletions
diff --git a/sfc/lib/cleanup.py b/sfc/lib/cleanup.py index 9c7b5484..32835fa8 100644 --- a/sfc/lib/cleanup.py +++ b/sfc/lib/cleanup.py @@ -1,97 +1,85 @@ import sys import time import logging -import functest.utils.openstack_utils as os_utils -import sfc.lib.openstack_tacker as os_tacker -import sfc.lib.utils as utils +import sfc.lib.openstack_utils as os_sfc_utils +import sfc.lib.odl_utils as odl_utils logger = logging.getLogger(__name__) def delete_odl_resources(odl_ip, odl_port, resource): - rsrc_list = utils.get_odl_resource_list(odl_ip, odl_port, resource) - elem_names = utils.odl_resource_list_names(resource, rsrc_list) + rsrc_list = odl_utils.get_odl_resource_list(odl_ip, odl_port, resource) + elem_names = odl_utils.odl_resource_list_names(resource, rsrc_list) for elem in elem_names: logger.info("Removing ODL resource: {0}/{1}".format(resource, elem)) - utils.delete_odl_resource_elem(odl_ip, odl_port, resource, elem) + odl_utils.delete_odl_resource_elem(odl_ip, odl_port, resource, elem) def delete_odl_ietf_access_lists(odl_ip, odl_port): - acl_list = utils.get_odl_acl_list(odl_ip, odl_port) - acl_types_names = utils.odl_acl_types_names(acl_list) + acl_list = odl_utils.get_odl_acl_list(odl_ip, odl_port) + acl_types_names = odl_utils.odl_acl_types_names(acl_list) for acl_type, acl_name in acl_types_names: - utils.delete_odl_acl(odl_ip, odl_port, acl_type, acl_name) + odl_utils.delete_odl_acl(odl_ip, odl_port, acl_type, acl_name) def delete_vnfds(): - t = os_tacker.get_tacker_client() - vnfds = os_tacker.list_vnfds(t) + t = os_sfc_utils.get_tacker_client() + vnfds = os_sfc_utils.list_vnfds(t) if vnfds is None: return for vnfd in vnfds: logger.info("Removing vnfd: {0}".format(vnfd)) - os_tacker.delete_vnfd(t, vnfd_id=vnfd) + os_sfc_utils.delete_vnfd(t, vnfd_id=vnfd) def delete_vnfs(): - t = os_tacker.get_tacker_client() - vnfs = os_tacker.list_vnfs(t) + t = os_sfc_utils.get_tacker_client() + vnfs = os_sfc_utils.list_vnfs(t) if vnfs is None: return for vnf in vnfs: logger.info("Removing vnf: {0}".format(vnf)) - os_tacker.delete_vnf(t, vnf_id=vnf) + os_sfc_utils.delete_vnf(t, vnf_id=vnf) def delete_vnffgs(): - t = os_tacker.get_tacker_client() - vnffgs = os_tacker.list_vnffgs(t) + t = os_sfc_utils.get_tacker_client() + vnffgs = os_sfc_utils.list_vnffgs(t) if vnffgs is None: return for vnffg in reversed(vnffgs): logger.info("Removing vnffg: {0}".format(vnffg)) - os_tacker.delete_vnffg(t, vnffg_id=vnffg) + os_sfc_utils.delete_vnffg(t, vnffg_id=vnffg) def delete_vnffgds(): - t = os_tacker.get_tacker_client() - vnffgds = os_tacker.list_vnffgds(t) + t = os_sfc_utils.get_tacker_client() + vnffgds = os_sfc_utils.list_vnffgds(t) if vnffgds is None: return for vnffgd in vnffgds: logger.info("Removing vnffgd: {0}".format(vnffgd)) - os_tacker.delete_vnffgd(t, vnffgd_id=vnffgd) + os_sfc_utils.delete_vnffgd(t, vnffgd_id=vnffgd) def delete_vims(): - t = os_tacker.get_tacker_client() - vims = os_tacker.list_vims(t) + t = os_sfc_utils.get_tacker_client() + vims = os_sfc_utils.list_vims(t) if vims is None: return for vim in vims: logger.info("Removing vim: {0}".format(vim)) - os_tacker.delete_vim(t, vim_id=vim) + os_sfc_utils.delete_vim(t, vim_id=vim) -def delete_floating_ips(): - n = os_utils.get_nova_client() - fips = os_utils.get_floating_ips(n) - if fips is None: - return - for fip in fips: - logger.info("Removing floating ip: {0}".format(fip.ip)) - os_utils.delete_floating_ip(n, fip.id) - - -def delete_instances(): - n = os_utils.get_nova_client() - instances = os_utils.get_instances(n) - if instances is None: - return - for inst in instances: - logger.info("Removing instance: {0}".format(inst.id)) - os_utils.delete_instance(n, inst.id) +# Creators is a list full of SNAPs objects +def delete_openstack_objects(creators): + for creator in reversed(creators): + try: + creator.clean() + except Exception as e: + logger.error('Unexpected error cleaning - %s', e) def cleanup_odl(odl_ip, odl_port): @@ -102,21 +90,29 @@ def cleanup_odl(odl_ip, odl_port): delete_odl_ietf_access_lists(odl_ip, odl_port) -def cleanup(odl_ip=None, odl_port=None): +def cleanup(creators, odl_ip=None, odl_port=None): + delete_vnffgs() + delete_vnffgds() + delete_vnfs() + time.sleep(20) + delete_vnfds() + delete_vims() + delete_openstack_objects(creators) + if odl_ip is not None and odl_port is not None: + cleanup_odl(odl_ip, odl_port) + + +def cleanup_from_bash(odl_ip=None, odl_port=None): delete_vnffgs() delete_vnffgds() delete_vnfs() time.sleep(20) delete_vnfds() delete_vims() - delete_floating_ips() - delete_instances() if odl_ip is not None and odl_port is not None: cleanup_odl(odl_ip, odl_port) if __name__ == '__main__': if len(sys.argv) > 2: - cleanup(sys.argv[1], sys.argv[2]) - else: - cleanup() + cleanup_from_bash(sys.argv[1], sys.argv[2]) |