From 00430f8e19cf424e3838c7bd2f9a90a7beb0e57d Mon Sep 17 00:00:00 2001 From: Iustin Pop <iustin@google.com> Date: Fri, 21 Nov 2008 15:36:08 +0000 Subject: [PATCH] Make cli.py use FieldSet for matching fields This changes cli.py to FieldSet usage so that gnt-instance list will format nicely the disk.size/*, and the count of disks/nics. Reviewed-by: ultrotter --- lib/cli.py | 7 +++++-- scripts/gnt-instance | 8 +++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/cli.py b/lib/cli.py index a800bae8e..6b0283414 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -764,6 +764,9 @@ def GenerateTable(headers, fields, separator, data, if unitfields is None: unitfields = [] + numfields = utils.FieldSet(*numfields) + unitfields = utils.FieldSet(*unitfields) + format_fields = [] for field in fields: if headers and field not in headers: @@ -773,7 +776,7 @@ def GenerateTable(headers, fields, separator, data, headers[field] = field if separator is not None: format_fields.append("%s") - elif field in numfields: + elif numfields.Matches(field): format_fields.append("%*s") else: format_fields.append("%-*s") @@ -786,7 +789,7 @@ def GenerateTable(headers, fields, separator, data, for row in data: for idx, val in enumerate(row): - if fields[idx] in unitfields: + if unitfields.Matches(fields[idx]): try: val = int(val) except ValueError: diff --git a/scripts/gnt-instance b/scripts/gnt-instance index 5d268119d..bfaa4e135 100755 --- a/scripts/gnt-instance +++ b/scripts/gnt-instance @@ -221,17 +221,19 @@ def ListInstances(opts, args): "be/memory": "Configured_memory", "be/vcpus": "VCPUs", "be/auto_balance": "Auto_balance", + "disk.count": "Disks", + "nic.count": "NICs", } else: headers = None if opts.human_readable: - unitfields = ["be/memory", "oper_ram", "sda_size", "sdb_size"] + unitfields = ["be/memory", "oper_ram", "sd(a|b)_size", "disk.size/.*"] else: unitfields = None - numfields = ["be/memory", "oper_ram", "sda_size", "sdb_size", "be/vcpus", - "serial_no"] + numfields = ["be/memory", "oper_ram", "sd(a|b)_size", "be/vcpus", + "serial_no", "(disk|nic).count", "disk.size/.*"] list_type_fields = ("tags",) # change raw values to nicer strings -- GitLab