Simplify VM metadata reads
Directly call the new common getDomainMetadata function to avoid excessive Zookeeper calls for this information.
This commit is contained in:
parent
9a199992a1
commit
c0a3467b70
|
@ -463,28 +463,20 @@ def get_vm_meta(zkhandler, vm):
|
||||||
"""
|
"""
|
||||||
Get metadata of a VM.
|
Get metadata of a VM.
|
||||||
"""
|
"""
|
||||||
retflag, retdata = pvc_vm.get_list(zkhandler, None, None, vm, is_fuzzy=False)
|
dom_uuid = pvc_vm.getDomainUUID(zkhandler, vm)
|
||||||
|
if not dom_uuid:
|
||||||
|
return {"message": "VM not found."}, 404
|
||||||
|
|
||||||
if retflag:
|
domain_node_limit, domain_node_selector, domain_node_autostart, domain_migrate_method = pvc_common.getDomainMetadata(zkhandler, dom_uuid)
|
||||||
if retdata:
|
|
||||||
retcode = 200
|
retcode = 200
|
||||||
retdata = {
|
retdata = {
|
||||||
'name': vm,
|
'name': vm,
|
||||||
'node_limit': retdata['node_limit'],
|
'node_limit': domain_node_limit,
|
||||||
'node_selector': retdata['node_selector'],
|
'node_selector': domain_node_selector,
|
||||||
'node_autostart': retdata['node_autostart'],
|
'node_autostart': domain_node_autostart,
|
||||||
'migration_method': retdata['migration_method']
|
'migration_method': domain_migrate_method
|
||||||
}
|
}
|
||||||
else:
|
|
||||||
retcode = 404
|
|
||||||
retdata = {
|
|
||||||
'message': 'VM not found.'
|
|
||||||
}
|
|
||||||
else:
|
|
||||||
retcode = 400
|
|
||||||
retdata = {
|
|
||||||
'message': retdata
|
|
||||||
}
|
|
||||||
|
|
||||||
return retdata, retcode
|
return retdata, retcode
|
||||||
|
|
||||||
|
@ -499,6 +491,7 @@ def update_vm_meta(zkhandler, vm, limit, selector, autostart, provisioner_profil
|
||||||
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)
|
||||||
|
|
||||||
if retflag:
|
if retflag:
|
||||||
|
|
|
@ -315,18 +315,9 @@ def getDomainTags(zkhandler, dom_uuid):
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Get domain information from XML
|
# Get a set of domain metadata
|
||||||
#
|
#
|
||||||
def getInformationFromXML(zkhandler, uuid):
|
def getDomainMetadata(zkhandler, dom_uuid):
|
||||||
"""
|
|
||||||
Gather information about a VM from the Libvirt XML configuration in the Zookeper database
|
|
||||||
and return a dict() containing it.
|
|
||||||
"""
|
|
||||||
domain_state = zkhandler.read(('domain.state', uuid))
|
|
||||||
domain_node = zkhandler.read(('domain.node', uuid))
|
|
||||||
domain_lastnode = zkhandler.read(('domain.last_node', uuid))
|
|
||||||
domain_failedreason = zkhandler.read(('domain.failed_reason', uuid))
|
|
||||||
|
|
||||||
domain_node_limit = zkhandler.read(('domain.meta.node_limit', uuid))
|
domain_node_limit = zkhandler.read(('domain.meta.node_limit', uuid))
|
||||||
domain_node_selector = zkhandler.read(('domain.meta.node_selector', uuid))
|
domain_node_selector = zkhandler.read(('domain.meta.node_selector', uuid))
|
||||||
domain_node_autostart = zkhandler.read(('domain.meta.autostart', uuid))
|
domain_node_autostart = zkhandler.read(('domain.meta.autostart', uuid))
|
||||||
|
@ -340,6 +331,24 @@ def getInformationFromXML(zkhandler, uuid):
|
||||||
if not domain_node_autostart:
|
if not domain_node_autostart:
|
||||||
domain_node_autostart = None
|
domain_node_autostart = None
|
||||||
|
|
||||||
|
return domain_node_limit, domain_node_selector, domain_node_autostart, domain_migration_method
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get domain information from XML
|
||||||
|
#
|
||||||
|
def getInformationFromXML(zkhandler, uuid):
|
||||||
|
"""
|
||||||
|
Gather information about a VM from the Libvirt XML configuration in the Zookeper database
|
||||||
|
and return a dict() containing it.
|
||||||
|
"""
|
||||||
|
domain_state = zkhandler.read(('domain.state', uuid))
|
||||||
|
domain_node = zkhandler.read(('domain.node', uuid))
|
||||||
|
domain_lastnode = zkhandler.read(('domain.last_node', uuid))
|
||||||
|
domain_failedreason = zkhandler.read(('domain.failed_reason', uuid))
|
||||||
|
|
||||||
|
domain_node_limit, domain_node_selector, domain_node_autostart, domain_migration_method = getDomainMetadata(zkhandler, uuid)
|
||||||
|
|
||||||
domain_profile = zkhandler.read(('domain.profile', uuid))
|
domain_profile = zkhandler.read(('domain.profile', uuid))
|
||||||
|
|
||||||
domain_vnc = zkhandler.read(('domain.console.vnc', uuid))
|
domain_vnc = zkhandler.read(('domain.console.vnc', uuid))
|
||||||
|
|
Loading…
Reference in New Issue