update err code

pull/156/head
KB-perByte 2022-04-11 14:57:00 +05:30
parent 1ce17fab54
commit 7801c67a5c
No known key found for this signature in database
GPG Key ID: F49472BE1744C3D5
1 changed files with 27 additions and 28 deletions

View File

@ -16,7 +16,7 @@ from ansible.errors import AnsibleFilterError
import itertools
def _raise_error(filter, msg):
def _raise_error(err):
"""Raise an error message, prepend with filter name
Args:
@ -26,9 +26,15 @@ def _raise_error(filter, msg):
Raises:
AnsibleFilterError: AnsibleError with filter name and message
"""
error = "Error when using plugin 'consolidate': '{filter}' reported {msg}".format(
filter=filter, msg=msg
tmp_err = []
tmplt_err = (
"Error when using plugin 'consolidate': '{filter}' reported {msg}"
)
for filter in list(err.keys()):
if err.get(filter):
msg = ", ".join(err.get(filter))
tmp_err.append(tmplt_err.format(filter=filter, msg=msg))
error = "; ".join(tmp_err)
raise AnsibleFilterError(error)
@ -49,16 +55,8 @@ def fail_on_filter(validator_func):
any: Return value to the function call
"""
res, err = validator_func(*args, **kwargs)
if err.get("match_key_err"):
_raise_error(
"fail_missing_match_key", ", ".join(err["match_key_err"])
)
if err.get("match_val_err"):
_raise_error(
"fail_missing_match_value", ", ".join(err["match_val_err"])
)
if err.get("duplicate_err"):
_raise_error("fail_duplicate", ", ".join(err["duplicate_err"]))
if err:
_raise_error(err)
return res
return update_err
@ -89,7 +87,7 @@ def check_missing_match_key_duplicate(
except KeyError:
if fail_missing_match_key:
errors_match_key.append(
"Missing match key '{match_key}' in data source {ds_idx} in list entry {dd_idx}".format(
"missing match key '{match_key}' in data source {ds_idx} in list entry {dd_idx}".format(
match_key=match_key, ds_idx=ds_idx, dd_idx=dd_idx
)
)
@ -97,14 +95,14 @@ def check_missing_match_key_duplicate(
if sorted(set(ds_values)) != sorted(ds_values) and fail_duplicate:
errors_duplicate.append(
"Duplicate values in data source {ds_idx}".format(
"duplicate values in data source {ds_idx}".format(
ds_idx=ds_idx
)
)
results.append(set(ds_values))
return results, {
"match_key_err": errors_match_key,
"duplicate_err": errors_duplicate,
"fail_missing_match_key": errors_match_key,
"fail_duplicate": errors_duplicate,
}
@ -118,19 +116,20 @@ def check_missing_match_values(matched_keys, fail_missing_match_value):
Returns:
set: set of unique values
"""
errors_match_values = []
all_values = set(itertools.chain.from_iterable(matched_keys))
if fail_missing_match_value:
for ds_idx, ds_values in enumerate(matched_keys, start=1):
missing_match = all_values - ds_values
if missing_match:
m_matches = ", ".join(missing_match)
errors_match_values.append(
"Missing match value {m_matches} in data source {ds_idx}".format(
ds_idx=ds_idx, m_matches=m_matches
)
if not fail_missing_match_value:
return all_values, {}
errors_match_values = []
for ds_idx, ds_values in enumerate(matched_keys, start=1):
missing_match = all_values - ds_values
if missing_match:
m_matches = ", ".join(missing_match)
errors_match_values.append(
"missing match value {m_matches} in data source {ds_idx}".format(
ds_idx=ds_idx, m_matches=m_matches
)
return all_values, {"match_val_err": errors_match_values}
)
return all_values, {"fail_missing_match_value": errors_match_values}
def consolidate_facts(data_sources, all_values):