[NEW PATCH] Related to BZ#719516: Make list nicer and include listNames inside. (via gerrit-bot)

David Naori dnaori at redhat.com
Mon Jul 11 17:04:27 UTC 2011


New patch submitted by David Naori (dnaori at redhat.com)

You can review this change at: http://gerrit.usersys.redhat.com/676

commit 75ac642c28a5b89fe2e4e98bf52e597064bf60b8
Author: David Naori <dnaori at redhat.com>
Date:   Thu Jul 7 16:21:15 2011 +0300

    Related to BZ#719516: Make list nicer and include listNames inside.
    
    Change-Id: I0753685d3032e79cc3f5de888b8ee7e865954d9c

diff --git a/vdsm_cli/vdsClient.py b/vdsm_cli/vdsClient.py
index 38640cc..d29cc4a 100755
--- a/vdsm_cli/vdsClient.py
+++ b/vdsm_cli/vdsClient.py
@@ -173,47 +173,40 @@ class service:
         return self.ExecAndExit(self.s.changeFloppy(vmId, file))
 
     def do_list(self, args):
-        table=False
-        if len(args):
-            if args[0] == 'table':
-                table=True
-        response = self.s.list(True)
-        if response['status']['code'] != 0:
-            print response['status']['message']
-        else:
-            if table:
+        vmListViews = ('table', 'long', 'ids')
+        view = 'long' #Default view
+
+        if args:
+            view = args[0]
+            if view not in vmListViews:
+                raise ValueError('Invalid argument "%s".' % args[0])
+            if view == 'table':
                 allStats = {}
                 for s in self.s.getAllVmStats()['statsList']:
-                    allStats[s['vmId']] = s
-            for conf in response['vmList']:
-                if table:
-                    id = conf['vmId']
-                    if id not in allStats:
-                        continue
-                    status = conf['status']
-                    if allStats[id].get('monitorResponse') == '-1':
-                        status += '*'
-                    print "%-36s %6s  %-20s %-20s %-20s" % (id,
-                        conf.get('pid', 'none'),
-                        conf.get('vmName', '<< NO NAME >>'),
-                        status, allStats[id].get('guestIPs', '') )
-                else:
-                    if 'sysprepInf' in conf:
-                        conf['sysprepInf'] = '<<exists>>'
-                    printConf(conf)
-        sys.exit(response['status']['code'])
+                    allStats[ s['vmId'] ] = s
+
+        response = self.s.list(True)
+        for conf in response['vmList']:
+            if view == 'long':
+                if 'sysprepInf' in conf:
+                    conf['sysprepInf'] = '<<exists>>'
+                printConf(conf)
+
+            elif view == 'table':
+                vmId = conf['vmId']
+                if vmId not in allStats: #Avoid race.
+                    continue
+                status = conf['status']
+                if allStats[vmId].get('monitorResponse') == '-1':
+                    status += '*'
+                print "%-36s %6s  %-20s %-20s %-20s" % ( vmId,
+                    conf.get('pid', 'none'),
+                    conf.get('vmName', '<< NO NAME >>'),
+                    status, allStats[vmId].get('guestIPs', '') )
+
+            elif view == 'ids':
+                print conf['vmId']
 
-    def do_listNames(self, args):
-        response = self.s.list()
-        if response['status']['code'] != 0:
-            print response['status']['message']
-        else:
-            names = []
-            for conf in response['vmList']:
-                names.append(conf['vmId'])
-            names.sort()
-            if names:
-                print '\n'.join(names)
         sys.exit(response['status']['code'])
 
     def do_destroy(self, args):
@@ -1525,12 +1518,12 @@ if __name__ == '__main__':
                             'Stops the emulation and graceful shutdown the virtual machine.'
                            )),
             'list'    :  ( serv.do_list,
-                           ('[table]',
-                            'Lists all available machines on the specified server and all available configuration info',
-                            'If table modifier added then show table with the fields: vmId vmName Status IP'
-                           )),
-            'listNames'  :  ( serv.do_listNames,
-                           ('Lists all available machines on the specified server',''
+                           ('[view]',
+                            'Lists all available machines on the specified server.',
+                            'Optional views:',
+                            '    "long"   all available configuration info (Default).',
+                            '    "table"  table output with the fields: vmId, vmName, Status and IP.',
+                            '    "ids"    all vmIds.'
                            )),
             'pause'   :  ( serv.do_pause,
                            ('<vmId>',




More information about the vdsm-patches mailing list