if domain.isActive():
logging.debug('Destroying domain')
domain.destroy()
- domain.undefine()
+ domain.undefineFlags(libvirt.VIR_DOMAIN_UNDEFINE_NVRAM)
# delete storage volume
try:
stgvol = pool.storageVolLookupByName("{}.qcow2".format(vm))
def clean_ssh_keys(key_file='/root/.ssh/authorized_keys'):
logging.info('Removing any stack pub keys from root authorized keys')
+ if not os.path.isfile(key_file):
+ logging.warning("Key file does not exist: ".format(key_file))
+ return
for line in fileinput.input(key_file, inplace=True):
line = line.strip('\n')
if 'stack@undercloud' not in line:
print(line)
+def clean_networks():
+ logging.debug('Cleaning all network config')
+ for network in constants.OPNFV_NETWORK_TYPES:
+ logging.info("Cleaning Jump Host Network config for network "
+ "{}".format(network))
+ jumphost.detach_interface_from_ovs(network)
+ jumphost.remove_ovs_bridge(network)
+
+ conn = libvirt.open('qemu:///system')
+ if not conn:
+ raise ApexCleanException('Unable to open libvirt connection')
+ logging.debug('Destroying all virsh networks')
+ for network in conn.listNetworks():
+ if network in constants.OPNFV_NETWORK_TYPES:
+ virsh_net = conn.networkLookupByName(network)
+ logging.debug("Destroying virsh network: {}".format(network))
+ if virsh_net.isActive():
+ virsh_net.destroy()
+ virsh_net.undefine()
+
+
def main():
clean_parser = argparse.ArgumentParser()
- clean_parser.add_argument('-f',
+ clean_parser.add_argument('-i',
dest='inv_file',
required=False,
default=None,
# Delete vbmc
clean_vbmcs()
# Clean network config
- for network in constants.ADMIN_NETWORK, constants.EXTERNAL_NETWORK:
- logging.info("Cleaning Jump Host Network config for network "
- "{}".format(network))
- jumphost.detach_interface_from_ovs(network)
- jumphost.remove_ovs_bridge(network)
+ clean_networks()
# clean pub keys from root's auth keys
clean_ssh_keys()
logging.info('Apex clean complete!')
+
if __name__ == '__main__':
main()