X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/a0b7d1bda271a27f6c3d50fb098d3d77a5b25255..e82ac01cfd4fa14a8e5e03a0c77045c21537f4e0:/lib/cmdlib.py diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 608937a..caae061 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1499,7 +1499,7 @@ class LUQueryNodes(NoHooksLU): "dtotal", "dfree", "mtotal", "mnode", "mfree", "bootid", - "ctotal", + "ctotal", "cnodes", "csockets", ]) _CheckOutputFields(static=["name", "pinst_cnt", "sinst_cnt", @@ -1525,14 +1525,17 @@ class LUQueryNodes(NoHooksLU): for name in nodenames: nodeinfo = node_data.get(name, None) if nodeinfo: + fn = utils.TryConvert live_data[name] = { - "mtotal": utils.TryConvert(int, nodeinfo['memory_total']), - "mnode": utils.TryConvert(int, nodeinfo['memory_dom0']), - "mfree": utils.TryConvert(int, nodeinfo['memory_free']), - "dtotal": utils.TryConvert(int, nodeinfo['vg_size']), - "dfree": utils.TryConvert(int, nodeinfo['vg_free']), - "ctotal": utils.TryConvert(int, nodeinfo['cpu_total']), - "bootid": nodeinfo['bootid'], + "mtotal": fn(int, nodeinfo.get('memory_total', None)), + "mnode": fn(int, nodeinfo.get('memory_dom0', None)), + "mfree": fn(int, nodeinfo.get('memory_free', None)), + "dtotal": fn(int, nodeinfo.get('vg_size', None)), + "dfree": fn(int, nodeinfo.get('vg_free', None)), + "ctotal": fn(int, nodeinfo.get('cpu_total', None)), + "bootid": nodeinfo.get('bootid', None), + "cnodes": fn(int, nodeinfo.get('cpu_nodes', None)), + "csockets": fn(int, nodeinfo.get('cpu_sockets', None)), } else: live_data[name] = {} @@ -3540,7 +3543,8 @@ class LUCreateInstance(LogicalUnit): if len(ial.nodes) != ial.required_nodes: raise errors.OpPrereqError("iallocator '%s' returned invalid number" " of nodes (%s), required %s" % - (len(ial.nodes), ial.required_nodes)) + (self.op.iallocator, len(ial.nodes), + ial.required_nodes)) self.op.pnode = ial.nodes[0] logger.ToStdout("Selected nodes for the instance: %s" % (", ".join(ial.nodes),)) @@ -4981,20 +4985,24 @@ class LUQueryInstanceData(NoHooksLU): idict["hvm_disk_type"] = instance.hvm_disk_type if htkind in constants.HTS_REQ_PORT: + if instance.vnc_bind_address is None: + vnc_bind_address = constants.VNC_DEFAULT_BIND_ADDRESS + else: + vnc_bind_address = instance.vnc_bind_address if instance.network_port is None: vnc_console_port = None - elif instance.vnc_bind_address == constants.BIND_ADDRESS_GLOBAL: + elif vnc_bind_address == constants.BIND_ADDRESS_GLOBAL: vnc_console_port = "%s:%s" % (instance.primary_node, instance.network_port) - elif instance.vnc_bind_address == constants.LOCALHOST_IP_ADDRESS: - vnc_console_port = "%s:%s on node %s" % (instance.vnc_bind_address, + elif vnc_bind_address == constants.LOCALHOST_IP_ADDRESS: + vnc_console_port = "%s:%s on node %s" % (vnc_bind_address, instance.network_port, instance.primary_node) else: vnc_console_port = "%s:%s" % (instance.vnc_bind_address, instance.network_port) idict["vnc_console_port"] = vnc_console_port - idict["vnc_bind_address"] = instance.vnc_bind_address + idict["vnc_bind_address"] = vnc_bind_address idict["network_port"] = instance.network_port result[instance.name] = idict