X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Fclean_openstack.py;h=4ad5d5bb0c63a47dc25810c59b3213fada71d87a;hb=7eeab2d73796b1054c20b41329835adc090bbf3c;hp=838927faa7a8613f8f35dd2ff2ec19509b93eda5;hpb=9c13968cdb32806da738dc520d45270e019f0ad3;p=functest.git diff --git a/utils/clean_openstack.py b/utils/clean_openstack.py index 838927faa..4ad5d5bb0 100644 --- a/utils/clean_openstack.py +++ b/utils/clean_openstack.py @@ -20,8 +20,6 @@ # http://www.apache.org/licenses/LICENSE-2.0 # -import argparse -import logging import os import time import yaml @@ -31,27 +29,12 @@ from neutronclient.v2_0 import client as neutronclient from keystoneclient.v2_0 import client as keystoneclient from cinderclient import client as cinderclient -import openstack_utils - -parser = argparse.ArgumentParser() -parser.add_argument("-d", "--debug", help="Debug mode", action="store_true") -args = parser.parse_args() +import functest.utils.functest_logger as ft_logger +import functest.utils.openstack_utils as os_utils """ logging configuration """ -logger = logging.getLogger('clean_openstack') -logger.setLevel(logging.DEBUG) - -ch = logging.StreamHandler() -if args.debug: - ch.setLevel(logging.DEBUG) -else: - ch.setLevel(logging.INFO) - -formatter = logging.Formatter('%(asctime)s - %(name)s - ' - '%(levelname)s - %(message)s') -ch.setFormatter(formatter) -logger.addHandler(ch) +logger = ft_logger.Logger("clean_openstack").getLogger() REPO_PATH = os.environ['repos_dir'] + '/functest/' @@ -83,7 +66,7 @@ def separator(): def remove_instances(nova_client): logger.info("Removing Nova instances...") - instances = openstack_utils.get_instances(nova_client) + instances = os_utils.get_instances(nova_client) if instances is None or len(instances) == 0: logger.debug("No instances found.") return @@ -93,7 +76,7 @@ def remove_instances(nova_client): instance_id = getattr(instance, 'id') logger.debug("Removing instance '%s', ID=%s ..." % (instance_name, instance_id)) - if openstack_utils.delete_instance(nova_client, instance_id): + if os_utils.delete_instance(nova_client, instance_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -101,7 +84,7 @@ def remove_instances(nova_client): timeout = 50 while timeout > 0: - instances = openstack_utils.get_instances(nova_client) + instances = os_utils.get_instances(nova_client) if instances is None or len(instances) == 0: break else: @@ -112,7 +95,7 @@ def remove_instances(nova_client): def remove_images(nova_client): logger.info("Removing Glance images...") - images = openstack_utils.get_images(nova_client) + images = os_utils.get_images(nova_client) if images is None or len(images) == 0: logger.debug("No images found.") return @@ -124,7 +107,7 @@ def remove_images(nova_client): if image_id not in default_images: logger.debug("Removing image '%s', ID=%s ..." % (image_name, image_id)) - if openstack_utils.delete_glance_image(nova_client, image_id): + if os_utils.delete_glance_image(nova_client, image_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the" @@ -136,7 +119,7 @@ def remove_images(nova_client): def remove_volumes(cinder_client): logger.info("Removing Cinder volumes...") - volumes = openstack_utils.get_volumes(cinder_client) + volumes = os_utils.get_volumes(cinder_client) if volumes is None or len(volumes) == 0: logger.debug("No volumes found.") return @@ -147,13 +130,13 @@ def remove_volumes(cinder_client): logger.debug("'%s', ID=%s " % (volume_name, volume_id)) if volume_id not in default_volumes: logger.debug("Removing cinder volume %s ..." % volume_id) - if openstack_utils.delete_volume(cinder_client, volume_id): + if os_utils.delete_volume(cinder_client, volume_id): logger.debug(" > Done!") else: logger.debug("Trying forced removal...") - if openstack_utils.delete_volume(cinder_client, - volume_id, - forced=True): + if os_utils.delete_volume(cinder_client, + volume_id, + forced=True): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -165,7 +148,7 @@ def remove_volumes(cinder_client): def remove_floatingips(nova_client): logger.info("Removing floating IPs...") - floatingips = openstack_utils.get_floating_ips(nova_client) + floatingips = os_utils.get_floating_ips(nova_client) if floatingips is None or len(floatingips) == 0: logger.debug("No floating IPs found.") return @@ -178,7 +161,7 @@ def remove_floatingips(nova_client): logger.debug("'%s', ID=%s " % (fip_ip, fip_id)) if fip_id not in default_floatingips: logger.debug("Removing floating IP %s ..." % fip_id) - if openstack_utils.delete_floating_ip(nova_client, fip_id): + if os_utils.delete_floating_ip(nova_client, fip_id): logger.debug(" > Done!") deleted += 1 else: @@ -190,7 +173,7 @@ def remove_floatingips(nova_client): timeout = 50 while timeout > 0: - floatingips = openstack_utils.get_floating_ips(nova_client) + floatingips = os_utils.get_floating_ips(nova_client) if floatingips is None or len(floatingips) == (init_len - deleted): break else: @@ -202,7 +185,7 @@ def remove_floatingips(nova_client): def remove_networks(neutron_client): logger.info("Removing Neutron objects") network_ids = [] - networks = openstack_utils.get_network_list(neutron_client) + networks = os_utils.get_network_list(neutron_client) if networks is None: logger.debug("There are no networks in the deployment. ") else: @@ -222,14 +205,14 @@ def remove_networks(neutron_client): network_ids.append(net_id) # delete ports - ports = openstack_utils.get_port_list(neutron_client) + ports = os_utils.get_port_list(neutron_client) if ports is None: logger.debug("There are no ports in the deployment. ") else: remove_ports(neutron_client, ports, network_ids) # remove routers - routers = openstack_utils.get_router_list(neutron_client) + routers = os_utils.get_router_list(neutron_client) if routers is None: logger.debug("There are no routers in the deployment. ") else: @@ -239,7 +222,7 @@ def remove_networks(neutron_client): if network_ids is not None: for net_id in network_ids: logger.debug("Removing network %s ..." % net_id) - if openstack_utils.delete_neutron_net(neutron_client, net_id): + if os_utils.delete_neutron_net(neutron_client, net_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -259,8 +242,7 @@ def remove_ports(neutron_client, ports, network_ids): router_id = port['device_id'] if len(port['fixed_ips']) == 0 and router_id == '': logger.debug("Removing port %s ..." % port_id) - if (openstack_utils.delete_neutron_port(neutron_client, - port_id)): + if (os_utils.delete_neutron_port(neutron_client, port_id)): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -270,7 +252,7 @@ def remove_ports(neutron_client, ports, network_ids): elif port['device_owner'] == 'network:router_interface': logger.debug("Detaching port %s (subnet %s) from router %s ..." % (port_id, subnet_id, router_id)) - if openstack_utils.remove_interface_router( + if os_utils.remove_interface_router( neutron_client, router_id, subnet_id): time.sleep(5) # leave 5 seconds to detach logger.debug(" > Done!") @@ -285,11 +267,10 @@ def remove_ports(neutron_client, ports, network_ids): def force_remove_port(neutron_client, port_id): logger.debug("Clearing device_owner for port %s ..." % port_id) - openstack_utils.update_neutron_port(neutron_client, - port_id, - device_owner='clear') + os_utils.update_neutron_port(neutron_client, port_id, + device_owner='clear') logger.debug("Removing port %s ..." % port_id) - if openstack_utils.delete_neutron_port(neutron_client, port_id): + if os_utils.delete_neutron_port(neutron_client, port_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the port %s..." @@ -306,8 +287,7 @@ def remove_routers(neutron_client, routers): if router['external_gateway_info'] is not None: logger.debug("Router has gateway to external network." "Removing link...") - if openstack_utils.remove_gateway_router(neutron_client, - router_id): + if os_utils.remove_gateway_router(neutron_client, router_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing " @@ -317,8 +297,7 @@ def remove_routers(neutron_client, routers): "Ready to remove...") logger.debug("Removing router %s(%s) ..." % (router_name, router_id)) - if openstack_utils.delete_neutron_router(neutron_client, - router_id): + if os_utils.delete_neutron_router(neutron_client, router_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -327,7 +306,7 @@ def remove_routers(neutron_client, routers): def remove_security_groups(neutron_client): logger.info("Removing Security groups...") - secgroups = openstack_utils.get_security_groups(neutron_client) + secgroups = os_utils.get_security_groups(neutron_client) if secgroups is None or len(secgroups) == 0: logger.debug("No security groups found.") return @@ -338,8 +317,7 @@ def remove_security_groups(neutron_client): logger.debug("'%s', ID=%s " % (secgroup_name, secgroup_id)) if secgroup_id not in default_security_groups: logger.debug(" Removing '%s'..." % secgroup_name) - if openstack_utils.delete_security_group(neutron_client, - secgroup_id): + if os_utils.delete_security_group(neutron_client, secgroup_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -351,7 +329,7 @@ def remove_security_groups(neutron_client): def remove_users(keystone_client): logger.info("Removing Users...") - users = openstack_utils.get_users(keystone_client) + users = os_utils.get_users(keystone_client) if users is None: logger.debug("There are no users in the deployment. ") return @@ -362,7 +340,7 @@ def remove_users(keystone_client): logger.debug("'%s', ID=%s " % (user_name, user_id)) if user_id not in default_users: logger.debug(" Removing '%s'..." % user_name) - if openstack_utils.delete_user(keystone_client, user_id): + if os_utils.delete_user(keystone_client, user_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -374,7 +352,7 @@ def remove_users(keystone_client): def remove_tenants(keystone_client): logger.info("Removing Tenants...") - tenants = openstack_utils.get_tenants(keystone_client) + tenants = os_utils.get_tenants(keystone_client) if tenants is None: logger.debug("There are no tenants in the deployment. ") return @@ -385,7 +363,7 @@ def remove_tenants(keystone_client): logger.debug("'%s', ID=%s " % (tenant_name, tenant_id)) if tenant_id not in default_tenants: logger.debug(" Removing '%s'..." % tenant_name) - if openstack_utils.delete_tenant(keystone_client, tenant_id): + if os_utils.delete_tenant(keystone_client, tenant_id): logger.debug(" > Done!") else: logger.error("There has been a problem removing the " @@ -396,16 +374,19 @@ def remove_tenants(keystone_client): def main(): - creds_nova = openstack_utils.get_credentials("nova") + logger.info("+++++++++++++++++++++++++++++++") + logger.info("Cleaning OpenStack resources...") + logger.info("+++++++++++++++++++++++++++++++") + creds_nova = os_utils.get_credentials("nova") nova_client = novaclient.Client('2', **creds_nova) - creds_neutron = openstack_utils.get_credentials("neutron") + creds_neutron = os_utils.get_credentials("neutron") neutron_client = neutronclient.Client(**creds_neutron) - creds_keystone = openstack_utils.get_credentials("keystone") + creds_keystone = os_utils.get_credentials("keystone") keystone_client = keystoneclient.Client(**creds_keystone) - creds_cinder = openstack_utils.get_credentials("cinder") + creds_cinder = os_utils.get_credentials("cinder") # cinder_client = cinderclient.Client(**creds_cinder) cinder_client = cinderclient.Client('1', creds_cinder['username'], creds_cinder['api_key'], @@ -413,7 +394,7 @@ def main(): creds_cinder['auth_url'], service_type="volume") - if not openstack_utils.check_credentials(): + if not os_utils.check_credentials(): logger.error("Please source the openrc credentials and run " "the script again.") exit(-1) @@ -435,8 +416,6 @@ def main(): remove_tenants(keystone_client) separator() - exit(0) - if __name__ == '__main__': main()