Add more disk/nic listing options in gnt-instance
authorIustin Pop <iustin@google.com>
Thu, 20 Nov 2008 06:19:19 +0000 (06:19 +0000)
committerIustin Pop <iustin@google.com>
Thu, 20 Nov 2008 06:19:19 +0000 (06:19 +0000)
This adds some more listing cases (useful for scripting/rapi):
  - disk.sizes for a list of all sizes
  - nic.(ips|macs|bridges)

Reviewed-by: imsnah

lib/cmdlib.py

index ee7af81..f5e2b96 100644 (file)
@@ -2720,7 +2720,9 @@ class LUQueryInstances(NoHooksLU):
                                "sda_size", "sdb_size", "vcpus", "tags",
                                "network_port", "beparams",
                                "(disk).(size)/([0-9]+)",
+                               "(disk).(sizes)",
                                "(nic).(mac|ip|bridge)/([0-9]+)",
+                               "(nic).(macs|ips|bridges)",
                                "(disk|nic).(count)",
                                "serial_no", "hypervisor", "hvparams",] +
                              ["hv/%s" % name
@@ -2885,6 +2887,8 @@ class LUQueryInstances(NoHooksLU):
           if st_groups and st_groups[0] == "disk":
             if st_groups[1] == "count":
               val = len(instance.disks)
+            elif st_groups[1] == "sizes":
+              val = [disk.size for disk in instance.disks]
             elif st_groups[1] == "size":
               disk_idx = int(st_groups[2])
               if disk_idx >= len(instance.disks):
@@ -2896,6 +2900,12 @@ class LUQueryInstances(NoHooksLU):
           elif st_groups[0] == "nic":
             if st_groups[1] == "count":
               val = len(instance.nics)
+            elif st_groups[1] == "macs":
+              val = [nic.mac for nic in instance.nics]
+            elif st_groups[1] == "ips":
+              val = [nic.ip for nic in instance.nics]
+            elif st_groups[1] == "bridges":
+              val = [nic.bridge for nic in instance.nics]
             else:
               # index-based item
               nic_idx = int(st_groups[2])