"FormatQueryResult",
"FormatParameterDict",
"FormatParamsDictInfo",
+ "FormatPolicyInfo",
"PrintGenericInfo",
"GenerateTable",
"AskUser",
return ret
+def _FormatListInfoDefault(data, def_data):
+ if data is not None:
+ ret = utils.CommaJoin(data)
+ else:
+ ret = "default (%s)" % utils.CommaJoin(def_data)
+ return ret
+
+
+def FormatPolicyInfo(custom_ipolicy, eff_ipolicy, iscluster):
+ """Formats an instance policy.
+
+ @type custom_ipolicy: dict
+ @param custom_ipolicy: own policy
+ @type eff_ipolicy: dict
+ @param eff_ipolicy: effective policy (including defaults); ignored for
+ cluster
+ @type iscluster: bool
+ @param iscluster: the policy is at cluster level
+ @rtype: list of pairs
+ @return: formatted data, suitable for L{PrintGenericInfo}
+
+ """
+ if iscluster:
+ eff_ipolicy = custom_ipolicy
+
+ custom_minmax = custom_ipolicy.get(constants.ISPECS_MINMAX)
+ ret = [
+ (key,
+ FormatParamsDictInfo(custom_minmax.get(key, {}),
+ eff_ipolicy[constants.ISPECS_MINMAX][key]))
+ for key in constants.ISPECS_MINMAX_KEYS
+ ]
+ if iscluster:
+ stdspecs = custom_ipolicy[constants.ISPECS_STD]
+ ret.append(
+ (constants.ISPECS_STD,
+ FormatParamsDictInfo(stdspecs, stdspecs))
+ )
+
+ ret.append(
+ ("enabled disk templates",
+ _FormatListInfoDefault(custom_ipolicy.get(constants.IPOLICY_DTS),
+ eff_ipolicy[constants.IPOLICY_DTS]))
+ )
+ ret.extend([
+ (key, str(custom_ipolicy.get(key, "default (%s)" % eff_ipolicy[key])))
+ for key in constants.IPOLICY_PARAMETERS
+ ])
+ return ret
+
+
def ConfirmOperation(names, list_type, text, extra=""):
"""Ask the user to confirm an operation on a list of list_type.
_FormatGroupedParams(result["diskparams"], roman=opts.roman_integers)),
("Instance policy - limits for instances",
- [
- (key,
- _FormatGroupedParams(result["ipolicy"][constants.ISPECS_MINMAX][key],
- roman=opts.roman_integers))
- for key in constants.ISPECS_MINMAX_KEYS
- ] +
- [
- (constants.ISPECS_STD,
- _FormatGroupedParams(result["ipolicy"][constants.ISPECS_STD],
- roman=opts.roman_integers)),
- ("enabled disk templates",
- utils.CommaJoin(result["ipolicy"][constants.IPOLICY_DTS])),
- ] +
- [
- (key, result["ipolicy"][key])
- for key in constants.IPOLICY_PARAMETERS
- ]),
+ FormatPolicyInfo(result["ipolicy"], None, True)),
]
PrintGenericInfo(info)