diff --git a/lib/client/gnt_group.py b/lib/client/gnt_group.py index 9b14c25bbb28abb5329be9940f2a471bfb30dad5..063928f9b51bd8d40e0cbb2fd1b827fc87a3679a 100644 --- a/lib/client/gnt_group.py +++ b/lib/client/gnt_group.py @@ -31,7 +31,7 @@ from ganeti import utils #: default list of fields for L{ListGroups} -_LIST_DEF_FIELDS = ["name", "node_cnt", "pinst_cnt", "alloc_policy"] +_LIST_DEF_FIELDS = ["name", "node_cnt", "pinst_cnt", "alloc_policy", "ndparams"] def AddGroup(opts, args): @@ -68,6 +68,20 @@ def AssignNodes(opts, args): SubmitOpCode(op, opts=opts) +def _FmtDict(data): + """Format dict data into command-line format. + + @param data: The input dict to be formatted + @return: The formatted dict + + """ + if not data: + return "(empty)" + + return utils.CommaJoin(["%s=%s" % (key, value) + for key, value in data.items()]) + + def ListGroups(opts, args): """List node groups and their properties. @@ -79,7 +93,11 @@ def ListGroups(opts, args): """ desired_fields = ParseFields(opts.output, _LIST_DEF_FIELDS) - fmtoverride = dict.fromkeys(["node_list", "pinst_list"], (",".join, False)) + fmtoverride = { + "node_list": (",".join, False), + "pinst_list": (",".join, False), + "ndparams": (_FmtDict, False), + } return GenericList(constants.QR_GROUP, desired_fields, args, None, opts.separator, not opts.no_headers, diff --git a/lib/query.py b/lib/query.py index 25263ce41eceb86203426ce93b9e1a435dab688a..21caea6aeda131c60ce7d53848339370009314f0 100644 --- a/lib/query.py +++ b/lib/query.py @@ -1157,6 +1157,7 @@ _GROUP_SIMPLE_FIELDS = { "name": ("Group", constants.QFT_TEXT), "serial_no": ("SerialNo", constants.QFT_NUMBER), "uuid": ("UUID", constants.QFT_TEXT), + "ndparams": ("NDParams", constants.QFT_OTHER), }