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)