X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=nfvbench%2Fcleanup.py;h=cefdcfa0332d3bbbeac8407678733d26eb3719e1;hb=refs%2Fheads%2Fmaster;hp=6a79a6326c42c8fd2140f09c94020621633cedb7;hpb=15ecdba939f0377c0cccaa76e5a070ef2357056b;p=nfvbench.git diff --git a/nfvbench/cleanup.py b/nfvbench/cleanup.py index 6a79a63..cefdcfa 100644 --- a/nfvbench/cleanup.py +++ b/nfvbench/cleanup.py @@ -15,15 +15,15 @@ # import sys -import time from neutronclient.neutron import client as nclient from novaclient.client import Client from novaclient.exceptions import NotFound from tabulate import tabulate -import credentials as credentials -from log import LOG +from . import credentials +from .log import LOG +from . import utils class ComputeCleaner(object): @@ -36,13 +36,6 @@ class ComputeCleaner(object): self.servers = [server for server in all_servers if server.name.startswith(instance_prefix)] - def instance_exists(self, server): - try: - self.nova_client.servers.get(server.id) - except NotFound: - return False - return True - def get_resource_list(self): return [["Instance", server.name, server.id] for server in self.servers] @@ -59,29 +52,8 @@ class ComputeCleaner(object): if self.clean_needed(clean_options): if self.servers: for server in self.servers: - try: - LOG.info('Deleting instance %s...', server.name) - self.nova_client.servers.delete(server.id) - except Exception: - LOG.exception("Instance %s deletion failed", server.name) - LOG.info(' Waiting for %d instances to be fully deleted...', len(self.servers)) - retry_count = 15 + len(self.servers) * 5 - while True: - retry_count -= 1 - self.servers = [server for server in self.servers if - self.instance_exists(server)] - if not self.servers: - break - - if retry_count: - LOG.info(' %d yet to be deleted by Nova, retries left=%d...', - len(self.servers), retry_count) - time.sleep(2) - else: - LOG.warning( - ' instance deletion verification time-out: %d still not deleted', - len(self.servers)) - break + utils.delete_server(self.nova_client, server) + utils.waiting_servers_deletion(self.nova_client, self.servers) class NetworkCleaner(object): @@ -96,7 +68,7 @@ class NetworkCleaner(object): for net in all_networks: netname = net['name'] for prefix in network_name_prefixes: - if netname.startswith(prefix): + if prefix and netname.startswith(prefix): self.networks.append(net) net_ids.append(net['id']) break @@ -263,14 +235,14 @@ class Cleaner(object): """Cleaner for all NFVbench resources.""" def __init__(self, config): - cred = credentials.Credentials(config.openrc_file, None, False) + cred = credentials.Credentials(config.openrc_file, config.clouds_detail, None, False) session = cred.get_session() self.neutron_client = nclient.Client('2.0', session=session) self.nova_client = Client(2, session=session) network_names = [inet['name'] for inet in config.internal_networks.values()] network_names.extend([inet['name'] for inet in config.edge_networks.values()]) - network_names.extend(config.management_network['name']) - network_names.extend(config.floating_network['name']) + network_names.append(config.management_network['name']) + network_names.append(config.floating_network['name']) router_names = [rtr['router_name'] for rtr in config.edge_networks.values()] # add idle networks as well if config.idle_networks.name: @@ -300,20 +272,20 @@ class Cleaner(object): LOG.info("NFVbench will delete resources shown...") clean_options = None if prompt: - answer = raw_input("Do you want to delete all ressources? (y/n) ") + answer = input("Do you want to delete all ressources? (y/n) ") if answer.lower() != 'y': - print "What kind of resources do you want to delete?" + print("What kind of resources do you want to delete?") all_option = "" all_option_codes = [] for cleaner in self.cleaners: code = cleaner.get_cleaner_code() - print "%s: %s" % (code[0], code) + print(("%s: %s" % (code[0], code))) all_option += code[0] all_option_codes.append(code) - print "a: all resources - a shortcut for '%s'" % all_option + print(("a: all resources - a shortcut for '%s'" % all_option)) all_option_codes.append("all resources") - print "q: quit" - answer_res = raw_input(":").lower() + print("q: quit") + answer_res = input(":").lower() # Check only first character because answer_res can be "flavor" and it is != all if answer_res[0] == "a": clean_options = all_option