X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Fopenstack_clean.py;h=ef26be1f3595a6ffe2fdc2371a167a146e3e24ca;hb=2679afde530042a2913a6d7aca5d3af3b524ac47;hp=ce82bc1547dbf700160e70a343ab1f4cdaf7234b;hpb=31e30777a3bf32d4d081d019338ee65906ffc2ca;p=functest.git diff --git a/utils/openstack_clean.py b/utils/openstack_clean.py index ce82bc154..ef26be1f3 100755 --- a/utils/openstack_clean.py +++ b/utils/openstack_clean.py @@ -48,7 +48,8 @@ def remove_instances(nova_client, default_instances): instance_name = getattr(instance, 'name') instance_id = getattr(instance, 'id') logger.debug("'%s', ID=%s " % (instance_name, instance_id)) - if instance_id not in default_instances: + if (instance_id not in default_instances and + instance_name not in default_instances.values()): logger.debug("Removing instance '%s' ..." % instance_id) if os_utils.delete_instance(nova_client, instance_id): logger.debug(" > Request sent.") @@ -83,7 +84,8 @@ def remove_images(nova_client, default_images): image_name = getattr(image, 'name') image_id = getattr(image, 'id') logger.debug("'%s', ID=%s " % (image_name, image_id)) - if image_id not in default_images: + if (image_id not in default_images and + image_name not in default_images.values()): logger.debug("Removing image '%s', ID=%s ..." % (image_name, image_id)) if os_utils.delete_glance_image(nova_client, image_id): @@ -107,7 +109,8 @@ def remove_volumes(cinder_client, default_volumes): volume_id = getattr(volume, 'id') volume_name = getattr(volume, 'display_name') logger.debug("'%s', ID=%s " % (volume_name, volume_id)) - if volume_id not in default_volumes: + if (volume_id not in default_volumes and + volume_name not in default_volumes.values()): logger.debug("Removing cinder volume %s ..." % volume_id) if os_utils.delete_volume(cinder_client, volume_id): logger.debug(" > Done!") @@ -138,7 +141,8 @@ def remove_floatingips(nova_client, default_floatingips): fip_id = getattr(fip, 'id') fip_ip = getattr(fip, 'ip') logger.debug("'%s', ID=%s " % (fip_ip, fip_id)) - if fip_id not in default_floatingips: + if (fip_id not in default_floatingips and + fip_ip not in default_floatingips.values()): logger.debug("Removing floating IP %s ..." % fip_id) if os_utils.delete_floating_ip(nova_client, fip_id): logger.debug(" > Done!") @@ -173,7 +177,8 @@ def remove_networks(neutron_client, default_networks, default_routers): net_id = network['id'] net_name = network['name'] logger.debug(" '%s', ID=%s " % (net_name, net_id)) - if net_id in default_networks: + if (net_id in default_networks and + net_name in default_networks.values()): logger.debug(" > this is a default network and will " "NOT be deleted.") elif network['router:external'] is True: @@ -197,9 +202,20 @@ def remove_networks(neutron_client, default_networks, default_routers): else: remove_routers(neutron_client, routers, default_routers) + # trozet: wait for Neutron to auto-cleanup HA networks when HA router is + # deleted + time.sleep(5) + # remove networks if network_ids is not None: for net_id in network_ids: + networks = os_utils.get_network_list(neutron_client) + if networks is None: + logger.debug("No networks left to remove") + break + elif not any(network['id'] == net_id for network in networks): + logger.debug("Network %s has already been removed" % net_id) + continue logger.debug("Removing network %s ..." % net_id) if os_utils.delete_neutron_net(neutron_client, net_id): logger.debug(" > Done!") @@ -217,7 +233,7 @@ def remove_ports(neutron_client, ports, network_ids): except: logger.debug(" > WARNING: Port %s does not contain fixed_ips" % port_id) - print port + logger.info(port) router_id = port['device_id'] if len(port['fixed_ips']) == 0 and router_id == '': logger.debug("Removing port %s ..." % port_id) @@ -260,7 +276,8 @@ def remove_routers(neutron_client, routers, default_routers): for router in routers: router_id = router['id'] router_name = router['name'] - if router_id not in default_routers: + if (router_id not in default_routers and + router_name not in default_routers.values()): logger.debug("Checking '%s' with ID=(%s) ..." % (router_name, router_id)) if router['external_gateway_info'] is not None: @@ -317,7 +334,8 @@ def remove_users(keystone_client, default_users): user_name = getattr(user, 'name') user_id = getattr(user, 'id') logger.debug("'%s', ID=%s " % (user_name, user_id)) - if user_id not in default_users: + if (user_id not in default_users and + user_name not in default_users.values()): logger.debug(" Removing '%s'..." % user_name) if os_utils.delete_user(keystone_client, user_id): logger.debug(" > Done!") @@ -340,7 +358,8 @@ def remove_tenants(keystone_client, default_tenants): tenant_name = getattr(tenant, 'name') tenant_id = getattr(tenant, 'id') logger.debug("'%s', ID=%s " % (tenant_name, tenant_id)) - if tenant_id not in default_tenants: + if (tenant_id not in default_tenants and + tenant_name not in default_tenants.values()): logger.debug(" Removing '%s'..." % tenant_name) if os_utils.delete_tenant(keystone_client, tenant_id): logger.debug(" > Done!")