Minor fixes regarding nic.network change
authorDimitris Aragiorgis <dimara@grnet.gr>
Tue, 19 Feb 2013 16:28:42 +0000 (18:28 +0200)
committerHelga Velroyen <helgav@google.com>
Tue, 19 Feb 2013 17:21:09 +0000 (18:21 +0100)
Make LookupNetwork() return None in case target is None. This fixes
Issue 380. Rapi passes network=None and the lookup should not fail.

Make network client aware of new nic.network.gnt-network info shows
the IPs of each instance inside the network.  It parses nic.networks
field of QueryInstances() output, which now is a list of uuids an
not names.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
Reviewed-by: Helga Velroyen <helgav@google.com>

lib/client/gnt_network.py
lib/config.py

index b2d6360..60d4dee 100644 (file)
@@ -250,7 +250,7 @@ def ShowNetworkConfig(_, args):
 
         l = lambda value: ", ".join(str(idx) + ":" + str(ip)
                                     for idx, (ip, net) in enumerate(value)
-                                      if net == name)
+                                      if net == uuid)
 
         ToStdout("    %s : %s", inst, l(zip(ips, networks)))
     else:
index ee26de6..13f9823 100644 (file)
@@ -1450,10 +1450,9 @@ class ConfigWriter:
     instance = self._UnlockedGetInstanceInfo(instance_name)
 
     for nic in instance.nics:
-      if nic.network is not None and nic.ip is not None:
-        net_uuid = self._UnlockedLookupNetwork(nic.network)
+      if nic.network and nic.ip:
         # Return all IP addresses to the respective address pools
-        self._UnlockedCommitIp(constants.RELEASE_ACTION, net_uuid, nic.ip)
+        self._UnlockedCommitIp(constants.RELEASE_ACTION, nic.network, nic.ip)
 
     del self._config_data.instances[instance_name]
     self._config_data.cluster.serial_no += 1
@@ -2503,6 +2502,8 @@ class ConfigWriter:
     @raises errors.OpPrereqError: when the target network cannot be found
 
     """
+    if target is None:
+      return None
     if target in self._config_data.networks:
       return target
     for net in self._config_data.networks.values():