LGTM
On Sat, Feb 16, 2013 at 2:19 PM, Dimitris Aragiorgis <[email protected]>wrote: > Queries now return the network uuid as well as it's name. Here we > only use info provided be LUInstanceQueryData context. > > Signed-off-by: Dimitris Aragiorgis <[email protected]> > --- > lib/query.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 47 insertions(+), 2 deletions(-) > > diff --git a/lib/query.py b/lib/query.py > index ef52d08..a9e0274 100644 > --- a/lib/query.py > +++ b/lib/query.py > @@ -90,7 +90,8 @@ from ganeti.constants import (QFT_UNKNOWN, QFT_TEXT, > QFT_BOOL, QFT_NUMBER, > IQ_LIVE, > IQ_DISKUSAGE, > IQ_CONSOLE, > - IQ_NODES) = range(100, 105) > + IQ_NODES, > + IQ_NETWORKS) = range(100, 106) > > (LQ_MODE, > LQ_OWNER, > @@ -1383,7 +1384,7 @@ class InstanceQueryData: > > """ > def __init__(self, instances, cluster, disk_usage, offline_nodes, > bad_nodes, > - live_data, wrongnode_inst, console, nodes, groups): > + live_data, wrongnode_inst, console, nodes, groups, > networks): > """Initializes this class. > > @param instances: List of instance objects > @@ -1402,6 +1403,8 @@ class InstanceQueryData: > @param console: Per-instance console information > @type nodes: dict; node name as key > @param nodes: Node objects > + @type networks: dict; net_uuid as key > + @param networks: Network objects > > """ > assert len(set(bad_nodes) & set(offline_nodes)) == > len(offline_nodes), \ > @@ -1419,6 +1422,7 @@ class InstanceQueryData: > self.console = console > self.nodes = nodes > self.groups = groups > + self.networks = networks > > # Used for individual rows > self.inst_hvparams = None > @@ -1569,6 +1573,20 @@ def _GetInstNic(index, cb): > return fn > > > +def _GetInstNicNetworkName(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 ctx.networks[nic.network].name > + > + > def _GetInstNicNetwork(ctx, _, nic): # pylint: disable=W0613 > """Get a NIC's Network. > > @@ -1615,6 +1633,27 @@ def _GetInstNicBridge(ctx, index, _): > return _FS_UNAVAIL > > > +def _GetInstAllNicNetworkNames(ctx, inst): > + """Get all network names for an instance. > + > + @type ctx: L{InstanceQueryData} > + @type inst: L{objects.Instance} > + @param inst: Instance object > + > + """ > + result = [] > + > + for nic in inst.nics: > + name = None > + if nic.network: > + name = ctx.networks[nic.network].name > + result.append(name) > + > + assert len(result) == len(inst.nics) > + > + return result > + > + > def _GetInstAllNicBridges(ctx, inst): > """Get all network bridges for an instance. > > @@ -1697,6 +1736,9 @@ def _GetInstanceNetworkFields(): > (_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]), > + (_MakeField("nic.networks.names", "NIC_networks_names", QFT_OTHER, > + "List containing each interface's network"), > + IQ_NETWORKS, 0, _GetInstAllNicNetworkNames) > ] > > # NICs by number > @@ -1721,6 +1763,9 @@ def _GetInstanceNetworkFields(): > (_MakeField("nic.network/%s" % i, "NicNetwork/%s" % i, QFT_TEXT, > "Network of %s network interface" % numtext), > IQ_CONFIG, 0, _GetInstNic(i, _GetInstNicNetwork)), > + (_MakeField("nic.network.name/%s" % i, "NicNetworkName/%s" % i, > QFT_TEXT, > + "Network name of %s network interface" % numtext), > + IQ_NETWORKS, 0, _GetInstNic(i, _GetInstNicNetworkName)), > ]) > > aliases = [ > -- > 1.7.10.4 > >
