Convert remaining VM functions

This commit is contained in:
Joshua Boniface 2021-05-29 00:16:26 -04:00
parent ea63a58b21
commit 9cd121ef9f
1 changed files with 59 additions and 87 deletions

View File

@ -157,13 +157,12 @@ def cluster_maintenance(zkhandler, maint_state='false'):
# #
# Node functions # Node functions
# #
def node_list(limit=None, daemon_state=None, coordinator_state=None, domain_state=None, is_fuzzy=True): @ZKConnection(config)
def node_list(zkhandler, limit=None, daemon_state=None, coordinator_state=None, domain_state=None, is_fuzzy=True):
""" """
Return a list of nodes with limit LIMIT. Return a list of nodes with limit LIMIT.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.get_list(zkhandler, limit, daemon_state=daemon_state, coordinator_state=coordinator_state, domain_state=domain_state, is_fuzzy=is_fuzzy) retflag, retdata = pvc_node.get_list(zkhandler, limit, daemon_state=daemon_state, coordinator_state=coordinator_state, domain_state=domain_state, is_fuzzy=is_fuzzy)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -182,13 +181,12 @@ def node_list(limit=None, daemon_state=None, coordinator_state=None, domain_stat
return retdata, retcode return retdata, retcode
def node_daemon_state(node): @ZKConnection(config)
def node_daemon_state(zkhandler, node):
""" """
Return the daemon state of node NODE. Return the daemon state of node NODE.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False) retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -211,13 +209,12 @@ def node_daemon_state(node):
return retdata, retcode return retdata, retcode
def node_coordinator_state(node): @ZKConnection(config)
def node_coordinator_state(zkhandler, node):
""" """
Return the coordinator state of node NODE. Return the coordinator state of node NODE.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False) retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -240,13 +237,12 @@ def node_coordinator_state(node):
return retdata, retcode return retdata, retcode
def node_domain_state(node): @ZKConnection(config)
def node_domain_state(zkhandler, node):
""" """
Return the domain state of node NODE. Return the domain state of node NODE.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False) retflag, retdata = pvc_node.get_list(zkhandler, node, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -266,13 +262,12 @@ def node_domain_state(node):
return retdata, retcode return retdata, retcode
def node_secondary(node): @ZKConnection(config)
def node_secondary(zkhandler, node):
""" """
Take NODE out of primary router mode. Take NODE out of primary router mode.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.secondary_node(zkhandler, node) retflag, retdata = pvc_node.secondary_node(zkhandler, node)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -285,13 +280,12 @@ def node_secondary(node):
return output, retcode return output, retcode
def node_primary(node): @ZKConnection(config)
def node_primary(zkhandler, node):
""" """
Set NODE to primary router mode. Set NODE to primary router mode.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.primary_node(zkhandler, node) retflag, retdata = pvc_node.primary_node(zkhandler, node)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -304,13 +298,12 @@ def node_primary(node):
return output, retcode return output, retcode
def node_flush(node, wait): @ZKConnection(config)
def node_flush(zkhandler, node, wait):
""" """
Flush NODE of running VMs. Flush NODE of running VMs.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.flush_node(zkhandler, node, wait) retflag, retdata = pvc_node.flush_node(zkhandler, node, wait)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -323,13 +316,12 @@ def node_flush(node, wait):
return output, retcode return output, retcode
def node_ready(node, wait): @ZKConnection(config)
def node_ready(zkhandler, node, wait):
""" """
Restore NODE to active service. Restore NODE to active service.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_node.ready_node(zkhandler, node, wait) retflag, retdata = pvc_node.ready_node(zkhandler, node, wait)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -345,24 +337,22 @@ def node_ready(node, wait):
# #
# VM functions # VM functions
# #
def vm_is_migrated(vm): @ZKConnection(config)
def vm_is_migrated(zkhandler, vm):
""" """
Determine if a VM is migrated or not Determine if a VM is migrated or not
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retdata = pvc_vm.is_migrated(zkhandler, vm) retdata = pvc_vm.is_migrated(zkhandler, vm)
pvc_common.stopZKConnection(zkhandler)
return retdata return retdata
def vm_state(vm): @ZKConnection(config)
def vm_state(zkhandler, vm):
""" """
Return the state of virtual machine VM. Return the state of virtual machine VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False) retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -385,13 +375,12 @@ def vm_state(vm):
return retdata, retcode return retdata, retcode
def vm_node(vm): @ZKConnection(config)
def vm_node(zkhandler, vm):
""" """
Return the current node of virtual machine VM. Return the current node of virtual machine VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False) retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -415,7 +404,8 @@ def vm_node(vm):
return retdata, retcode return retdata, retcode
def vm_console(vm, lines=None): @ZKConnection(config)
def vm_console(zkhandler, vm, lines=None):
""" """
Return the current console log for VM. Return the current console log for VM.
""" """
@ -425,9 +415,7 @@ def vm_console(vm, lines=None):
except TypeError: except TypeError:
lines = 10 lines = 10
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_console_log(zkhandler, vm, lines) retflag, retdata = pvc_vm.get_console_log(zkhandler, vm, lines)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -444,13 +432,12 @@ def vm_console(vm, lines=None):
return retdata, retcode return retdata, retcode
def vm_list(node=None, state=None, limit=None, is_fuzzy=True): @ZKConnection(config)
def vm_list(zkhandler, node=None, state=None, limit=None, is_fuzzy=True):
""" """
Return a list of VMs with limit LIMIT. Return a list of VMs with limit LIMIT.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_list(zkhandler, node, state, limit, is_fuzzy) retflag, retdata = pvc_vm.get_list(zkhandler, node, state, limit, is_fuzzy)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -469,7 +456,8 @@ def vm_list(node=None, state=None, limit=None, is_fuzzy=True):
return retdata, retcode return retdata, retcode
def vm_define(xml, node, limit, selector, autostart, migration_method): @ZKConnection(config)
def vm_define(zkhandler, xml, node, limit, selector, autostart, migration_method):
""" """
Define a VM from Libvirt XML in the PVC cluster. Define a VM from Libvirt XML in the PVC cluster.
""" """
@ -480,9 +468,7 @@ def vm_define(xml, node, limit, selector, autostart, migration_method):
except Exception as e: except Exception as e:
return {'message': 'XML is malformed or incorrect: {}'.format(e)}, 400 return {'message': 'XML is malformed or incorrect: {}'.format(e)}, 400
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.define_vm(zkhandler, new_cfg, node, limit, selector, autostart, migration_method, profile=None) retflag, retdata = pvc_vm.define_vm(zkhandler, new_cfg, node, limit, selector, autostart, migration_method, profile=None)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -495,13 +481,12 @@ def vm_define(xml, node, limit, selector, autostart, migration_method):
return output, retcode return output, retcode
def get_vm_meta(vm): @ZKConnection(config)
def get_vm_meta(zkhandler, vm):
""" """
Get metadata of a VM. Get metadata of a VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False) retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
if retdata: if retdata:
@ -527,18 +512,17 @@ def get_vm_meta(vm):
return retdata, retcode return retdata, retcode
def update_vm_meta(vm, limit, selector, autostart, provisioner_profile, migration_method): @ZKConnection(config)
def update_vm_meta(zkhandler, vm, limit, selector, autostart, provisioner_profile, migration_method):
""" """
Update metadata of a VM. Update metadata of a VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
if autostart is not None: if autostart is not None:
try: try:
autostart = bool(strtobool(autostart)) autostart = bool(strtobool(autostart))
except Exception: except Exception:
autostart = False autostart = False
retflag, retdata = pvc_vm.modify_vm_metadata(zkhandler, vm, limit, selector, autostart, provisioner_profile, migration_method) retflag, retdata = pvc_vm.modify_vm_metadata(zkhandler, vm, limit, selector, autostart, provisioner_profile, migration_method)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -551,7 +535,8 @@ def update_vm_meta(vm, limit, selector, autostart, provisioner_profile, migratio
return output, retcode return output, retcode
def vm_modify(name, restart, xml): @ZKConnection(config)
def vm_modify(zkhandler, name, restart, xml):
""" """
Modify a VM Libvirt XML in the PVC cluster. Modify a VM Libvirt XML in the PVC cluster.
""" """
@ -561,9 +546,8 @@ def vm_modify(name, restart, xml):
new_cfg = etree.tostring(xml_data, pretty_print=True).decode('utf8') new_cfg = etree.tostring(xml_data, pretty_print=True).decode('utf8')
except Exception as e: except Exception as e:
return {'message': 'XML is malformed or incorrect: {}'.format(e)}, 400 return {'message': 'XML is malformed or incorrect: {}'.format(e)}, 400
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.modify_vm(zkhandler, name, restart, new_cfg) retflag, retdata = pvc_vm.modify_vm(zkhandler, name, restart, new_cfg)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -576,7 +560,8 @@ def vm_modify(name, restart, xml):
return output, retcode return output, retcode
def vm_rename(name, new_name): @ZKConnection(config)
def vm_rename(zkhandler, name, new_name):
""" """
Rename a VM in the PVC cluster. Rename a VM in the PVC cluster.
""" """
@ -586,7 +571,6 @@ def vm_rename(name, new_name):
} }
return 400, output return 400, output
zkhandler = pvc_common.startZKConnection(config['coordinators'])
if pvc_vm.searchClusterByName(zkhandler, new_name) is not None: if pvc_vm.searchClusterByName(zkhandler, new_name) is not None:
output = { output = {
'message': 'A VM named \'{}\' is already present in the cluster'.format(new_name) 'message': 'A VM named \'{}\' is already present in the cluster'.format(new_name)
@ -594,7 +578,6 @@ def vm_rename(name, new_name):
return 400, output return 400, output
retflag, retdata = pvc_vm.rename_vm(zkhandler, name, new_name) retflag, retdata = pvc_vm.rename_vm(zkhandler, name, new_name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -607,13 +590,12 @@ def vm_rename(name, new_name):
return output, retcode return output, retcode
def vm_undefine(name): @ZKConnection(config)
def vm_undefine(zkhandler, name):
""" """
Undefine a VM from the PVC cluster. Undefine a VM from the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.undefine_vm(zkhandler, name) retflag, retdata = pvc_vm.undefine_vm(zkhandler, name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -626,13 +608,12 @@ def vm_undefine(name):
return output, retcode return output, retcode
def vm_remove(name): @ZKConnection(config)
def vm_remove(zkhandler, name):
""" """
Remove a VM from the PVC cluster. Remove a VM from the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.remove_vm(zkhandler, name) retflag, retdata = pvc_vm.remove_vm(zkhandler, name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -645,13 +626,12 @@ def vm_remove(name):
return output, retcode return output, retcode
def vm_start(name): @ZKConnection(config)
def vm_start(zkhandler, name):
""" """
Start a VM in the PVC cluster. Start a VM in the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.start_vm(zkhandler, name) retflag, retdata = pvc_vm.start_vm(zkhandler, name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -664,13 +644,12 @@ def vm_start(name):
return output, retcode return output, retcode
def vm_restart(name, wait): @ZKConnection(config)
def vm_restart(zkhandler, name, wait):
""" """
Restart a VM in the PVC cluster. Restart a VM in the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.restart_vm(zkhandler, name, wait) retflag, retdata = pvc_vm.restart_vm(zkhandler, name, wait)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -683,13 +662,12 @@ def vm_restart(name, wait):
return output, retcode return output, retcode
def vm_shutdown(name, wait): @ZKConnection(config)
def vm_shutdown(zkhandler, name, wait):
""" """
Shutdown a VM in the PVC cluster. Shutdown a VM in the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.shutdown_vm(zkhandler, name, wait) retflag, retdata = pvc_vm.shutdown_vm(zkhandler, name, wait)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -702,13 +680,12 @@ def vm_shutdown(name, wait):
return output, retcode return output, retcode
def vm_stop(name): @ZKConnection(config)
def vm_stop(zkhandler, name):
""" """
Forcibly stop a VM in the PVC cluster. Forcibly stop a VM in the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.stop_vm(zkhandler, name) retflag, retdata = pvc_vm.stop_vm(zkhandler, name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -721,13 +698,12 @@ def vm_stop(name):
return output, retcode return output, retcode
def vm_disable(name): @ZKConnection(config)
def vm_disable(zkhandler, name):
""" """
Disable a (stopped) VM in the PVC cluster. Disable a (stopped) VM in the PVC cluster.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.disable_vm(zkhandler, name) retflag, retdata = pvc_vm.disable_vm(zkhandler, name)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -740,13 +716,12 @@ def vm_disable(name):
return output, retcode return output, retcode
def vm_move(name, node, wait, force_live): @ZKConnection(config)
def vm_move(zkhandler, name, node, wait, force_live):
""" """
Move a VM to another node. Move a VM to another node.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.move_vm(zkhandler, name, node, wait, force_live) retflag, retdata = pvc_vm.move_vm(zkhandler, name, node, wait, force_live)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -759,13 +734,12 @@ def vm_move(name, node, wait, force_live):
return output, retcode return output, retcode
def vm_migrate(name, node, flag_force, wait, force_live): @ZKConnection(config)
def vm_migrate(zkhandler, name, node, flag_force, wait, force_live):
""" """
Temporarily migrate a VM to another node. Temporarily migrate a VM to another node.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.migrate_vm(zkhandler, name, node, flag_force, wait, force_live) retflag, retdata = pvc_vm.migrate_vm(zkhandler, name, node, flag_force, wait, force_live)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -778,13 +752,12 @@ def vm_migrate(name, node, flag_force, wait, force_live):
return output, retcode return output, retcode
def vm_unmigrate(name, wait, force_live): @ZKConnection(config)
def vm_unmigrate(zkhandler, name, wait, force_live):
""" """
Unmigrate a migrated VM. Unmigrate a migrated VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.unmigrate_vm(zkhandler, name, wait, force_live) retflag, retdata = pvc_vm.unmigrate_vm(zkhandler, name, wait, force_live)
pvc_common.stopZKConnection(zkhandler)
if retflag: if retflag:
retcode = 200 retcode = 200
@ -797,13 +770,12 @@ def vm_unmigrate(name, wait, force_live):
return output, retcode return output, retcode
def vm_flush_locks(vm): @ZKConnection(config)
def vm_flush_locks(zkhandler, vm):
""" """
Flush locks of a (stopped) VM. Flush locks of a (stopped) VM.
""" """
zkhandler = pvc_common.startZKConnection(config['coordinators'])
retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False) retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False)
pvc_common.stopZKConnection(zkhandler)
if retdata[0].get('state') not in ['stop', 'disable']: if retdata[0].get('state') not in ['stop', 'disable']:
return {"message": "VM must be stopped to flush locks"}, 400 return {"message": "VM must be stopped to flush locks"}, 400