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