Commit d00884a2 authored by Bernardo Dal Seno's avatar Bernardo Dal Seno
Browse files

Refactor out function to format instance policy



The new function can be used for group-level instance policies. Support for
roman numeral formatting has been dropped to make the code simpler. For
other info items it's already unsupported, and it's not exactly documented
anyway.
Signed-off-by: default avatarBernardo Dal Seno <bdalseno@google.com>
Reviewed-by: default avatarHelga Velroyen <helgav@google.com>
parent 2c398e80
......@@ -236,6 +236,7 @@ __all__ = [
"FormatQueryResult",
"FormatParameterDict",
"FormatParamsDictInfo",
"FormatPolicyInfo",
"PrintGenericInfo",
"GenerateTable",
"AskUser",
......@@ -3639,6 +3640,57 @@ def FormatParamsDictInfo(param_dict, actual):
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.
......
......@@ -474,23 +474,7 @@ def ShowClusterConfig(opts, args):
_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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment