diff --git a/lib/client/gnt_network.py b/lib/client/gnt_network.py index 714658214fafafcc37bd4e9e6da0dd04d1bcd9a8..1b0cc567f23b3056c660edf0b6649fa9aa250b15 100644 --- a/lib/client/gnt_network.py +++ b/lib/client/gnt_network.py @@ -153,10 +153,13 @@ def ListNetworks(opts, args): """ desired_fields = ParseFields(opts.output, _LIST_DEF_FIELDS) fmtoverride = { - "group_list": (",".join, False), + "group_list": + (lambda data: utils.CommaJoin("%s (%s, %s)" % (name, mode, link) + for (name, mode, link) in data), + False), "inst_list": (",".join, False), "tags": (",".join, False), - } + } return GenericList(constants.QR_NETWORK, desired_fields, args, None, opts.separator, not opts.no_headers, diff --git a/lib/cmdlib.py b/lib/cmdlib.py index bdc26dae44058f45ace7dbd2766d48e58f9e0556..4a7e663759f4a2cd489ff7492d7e3cb4da1a5cc9 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -16225,9 +16225,10 @@ class _NetworkQuery(_QueryBase): for net_uuid in group.networks.keys(): if net_uuid in network_to_groups: netparams = group.networks[net_uuid] - mode = netparams[constants.NIC_MODE] - link = netparams[constants.NIC_LINK] - info = group.name + "(" + mode + ", " + link + ")" + + info = (group.name, netparams[constants.NIC_MODE], + netparams[constants.NIC_LINK]) + network_to_groups[net_uuid].append(info) if do_instances: diff --git a/lib/query.py b/lib/query.py index 396ff808a05f859c890b5e28ed864a509f2b86d5..c7f8fa9fa13e2534ce657c40bc9545958df19119 100644 --- a/lib/query.py +++ b/lib/query.py @@ -2556,8 +2556,9 @@ def _BuildNetworkFields(): fields.extend([ (_MakeField("group_cnt", "NodeGroups", QFT_NUMBER, "Number of nodegroups"), NETQ_GROUP, 0, _GetLength(network_to_groups)), - (_MakeField("group_list", "GroupList", QFT_OTHER, "List of nodegroups"), - NETQ_GROUP, 0, _GetSortedList(network_to_groups)), + (_MakeField("group_list", "GroupList", QFT_OTHER, + "List of nodegroups (group name, NIC mode, NIC link)"), + NETQ_GROUP, 0, lambda ctx, network: network_to_groups(ctx)[network.uuid]), ]) # Add fields for instances