diff --git a/lib/cli.py b/lib/cli.py index feb0fe41a0e6cd0e9088381824112dbd45ba2f61..38579b1164b4b428f1b7fd584edf3ba821d8de3f 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -2394,6 +2394,7 @@ def GenericInstanceCreate(mode, opts, args): disks=disks, disk_template=opts.disk_template, nics=nics, + conflicts_check=opts.conflicts_check, pnode=pnode, snode=snode, ip_check=opts.ip_check, name_check=opts.name_check, diff --git a/lib/client/gnt_instance.py b/lib/client/gnt_instance.py index c59817b5d049cfbd97dbf831d02c8d36a738cf0f..b814640d5571c936f30ab8abaec8ce47dec15951 100644 --- a/lib/client/gnt_instance.py +++ b/lib/client/gnt_instance.py @@ -218,6 +218,7 @@ def ListInstances(opts, args): fmtoverride = dict.fromkeys(["tags", "disk.sizes", "nic.macs", "nic.ips", "nic.modes", "nic.links", "nic.bridges", + "nic.networks", "snodes", "snodes.group", "snodes.group.uuid"], (lambda value: ",".join(str(item) for item in value), @@ -1257,9 +1258,10 @@ def ShowInstanceConfig(opts, args): FormatParameterDict(buf, instance["be_instance"], be_actual, level=2) # TODO(ganeti 2.7) rework the NICs as well buf.write(" - NICs:\n") - for idx, (ip, mac, mode, link) in enumerate(instance["nics"]): - buf.write(" - nic/%d: MAC: %s, IP: %s, mode: %s, link: %s\n" % - (idx, mac, ip, mode, link)) + for idx, (ip, mac, mode, link, network) in enumerate(instance["nics"]): + buf.write(" - nic/%d: MAC: %s, IP: %s," + " mode: %s, link: %s, network: %s\n" % + (idx, mac, ip, mode, link, network)) buf.write(" Disk template: %s\n" % instance["disk_template"]) buf.write(" Disks:\n") diff --git a/lib/query.py b/lib/query.py index 80b297285759a0385292721583eb138752303712..c2c8a2c36eea1c0a92e57b8a4f793b3386a55b04 100644 --- a/lib/query.py +++ b/lib/query.py @@ -1518,6 +1518,20 @@ def _GetInstNic(index, cb): return fn +def _GetInstNicNetwork(ctx, _, nic): # pylint: disable=W0613 + """Get a NIC's Network. + + @type ctx: L{InstanceQueryData} + @type nic: L{objects.NIC} + @param nic: NIC object + + """ + if nic.network is None: + return _FS_UNAVAIL + else: + return nic.network + + def _GetInstNicIp(ctx, _, nic): # pylint: disable=W0613 """Get a NIC's IP address. @@ -1629,6 +1643,9 @@ def _GetInstanceNetworkFields(): (_MakeField("nic.bridges", "NIC_bridges", QFT_OTHER, "List containing each network interface's bridge"), IQ_CONFIG, 0, _GetInstAllNicBridges), + (_MakeField("nic.networks", "NIC_networks", QFT_OTHER, + "List containing each interface's network"), IQ_CONFIG, 0, + lambda ctx, inst: [nic.network for nic in inst.nics]), ] # NICs by number @@ -1650,6 +1667,9 @@ def _GetInstanceNetworkFields(): (_MakeField("nic.bridge/%s" % i, "NicBridge/%s" % i, QFT_TEXT, "Bridge of %s network interface" % numtext), IQ_CONFIG, 0, _GetInstNic(i, _GetInstNicBridge)), + (_MakeField("nic.network/%s" % i, "NicNetwork/%s" % i, QFT_TEXT, + "Network of %s network interface" % numtext), + IQ_CONFIG, 0, _GetInstNic(i, _GetInstNicNetwork)), ]) aliases = [ @@ -1659,6 +1679,7 @@ def _GetInstanceNetworkFields(): ("bridge", "nic.bridge/0"), ("nic_mode", "nic.mode/0"), ("nic_link", "nic.link/0"), + ("nic_network", "nic.network/0"), ] return (fields, aliases)