diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 1789d200660b9d6f2ad3e9fb8baa3a532603bd59..cf028bcd54e916f8bc249fd706118af2965da3f7 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1271,7 +1271,7 @@ class LUQueryNodes(NoHooksLU): _CheckOutputFields(static=["name", "pinst_cnt", "sinst_cnt", "pinst_list", "sinst_list", - "pip", "sip"], + "pip", "sip", "tags"], dynamic=self.dynamic_fields, selected=self.op.output_fields) @@ -1342,6 +1342,8 @@ class LUQueryNodes(NoHooksLU): val = node.primary_ip elif field == "sip": val = node.secondary_ip + elif field == "tags": + val = list(node.GetTags()) elif field in self.dynamic_fields: val = live_data[node.name].get(field, None) else: @@ -2488,7 +2490,7 @@ class LUQueryInstances(NoHooksLU): _CheckOutputFields(static=["name", "os", "pnode", "snodes", "admin_state", "admin_ram", "disk_template", "ip", "mac", "bridge", - "sda_size", "sdb_size", "vcpus"], + "sda_size", "sdb_size", "vcpus", "tags"], dynamic=self.dynamic_fields, selected=self.op.output_fields) @@ -2581,6 +2583,8 @@ class LUQueryInstances(NoHooksLU): val = disk.size elif field == "vcpus": val = instance.vcpus + elif field == "tags": + val = list(instance.GetTags()) else: raise errors.ParameterError(field) iout.append(val) diff --git a/man/gnt-instance.sgml b/man/gnt-instance.sgml index d1f8a94444391608927b271578e9fcf0202aa4ad..0095fbf9a3071b3ffa9b06ac7ad50387cf093d8b 100644 --- a/man/gnt-instance.sgml +++ b/man/gnt-instance.sgml @@ -575,6 +575,13 @@ instance</simpara> </listitem> </varlistentry> + <varlistentry> + <term>tags</term> + <listitem> + <simpara>comma-separated list of the instances's + tags</simpara> + </listitem> + </varlistentry> </variablelist> </para> diff --git a/man/gnt-node.sgml b/man/gnt-node.sgml index cae8a8f4b71d6ffb63d9f322cdf8da9ef09425a8..65b8d81f55343b09f9df5ce2fccb15c8bee8e601 100644 --- a/man/gnt-node.sgml +++ b/man/gnt-node.sgml @@ -326,6 +326,13 @@ changes in this value)</simpara> </listitem> </varlistentry> + <varlistentry> + <term>tags</term> + <listitem> + <simpara>comma-separated list of the node's + tags</simpara> + </listitem> + </varlistentry> </variablelist> </para> diff --git a/scripts/gnt-instance b/scripts/gnt-instance index 497a528a7943a07e5ec0d8871f58384944cab637..06caf943f0c906a96cc73f4495581743759db3f9 100755 --- a/scripts/gnt-instance +++ b/scripts/gnt-instance @@ -188,7 +188,7 @@ def ListInstances(opts, args): "ip": "IP Address", "mac": "MAC Address", "bridge": "Bridge", "vcpus": "VCPUs", "sda_size": "Disk/0", "sdb_size": "Disk/1", - "status": "Status", + "status": "Status", "tags": "Tags", } else: headers = None @@ -200,6 +200,7 @@ def ListInstances(opts, args): numfields = ["admin_ram", "oper_ram", "sda_size", "sdb_size", "vcpus"] + list_type_fields = ("tags",) # change raw values to nicer strings for row in output: for idx, field in enumerate(selected_fields): @@ -224,6 +225,8 @@ def ListInstances(opts, args): elif field == "sda_size" or field == "sdb_size": if val is None: val = "N/A" + elif field in list_type_fields: + val = ",".join(val) row[idx] = str(val) data = GenerateTable(separator=opts.separator, headers=headers, diff --git a/scripts/gnt-node b/scripts/gnt-node index 3c2189a948c1eedeacaa2fd2acd139c14a20e34f..6b310964d3b33feef1d5627feb527c13e965795a 100755 --- a/scripts/gnt-node +++ b/scripts/gnt-node @@ -70,6 +70,7 @@ def ListNodes(opts, args): "mtotal": "MTotal", "mnode": "MNode", "mfree": "MFree", "bootid": "BootID", "ctotal": "CTotal", + "tags": "Tags", } else: headers = None @@ -84,13 +85,12 @@ def ListNodes(opts, args): "pinst_cnt", "sinst_cnt", "ctotal"] + list_type_fields = ("pinst_list", "sinst_list", "tags") # change raw values to nicer strings for row in output: for idx, field in enumerate(selected_fields): val = row[idx] - if field == "pinst_list": - val = ",".join(val) - elif field == "sinst_list": + if field in list_type_fields: val = ",".join(val) elif val is None: val = "?"