Merge "Add warning for duplicate parameters"
This commit is contained in:
commit
1308d0d49a
|
@ -3499,3 +3499,33 @@ def get_tripleo_cephadm_keys(username, key, pools):
|
|||
mon='profile rbd',
|
||||
osd=', '.join(list(
|
||||
map(lambda x: 'profile rbd pool=' + x, pools)))))]
|
||||
|
||||
|
||||
def duplicate_param_check(user_environments):
|
||||
"""Register warnings when duplcate parameters are discovered.
|
||||
|
||||
:param user_environments: List of user defined environment files.
|
||||
:type user_environments: Array
|
||||
"""
|
||||
used_params = collections.defaultdict(int)
|
||||
duplicate_params = dict()
|
||||
for env_file in user_environments:
|
||||
_env_file_parsed = url_parse.urlparse(env_file)
|
||||
try:
|
||||
with open(_env_file_parsed.path, 'r') as f:
|
||||
_env_map = yaml.safe_load(f)
|
||||
except FileNotFoundError:
|
||||
continue
|
||||
else:
|
||||
LOG.debug('Inspecting "%s"', _env_file_parsed.path)
|
||||
|
||||
for k, v in _env_map.get('parameter_defaults', {}).items():
|
||||
used_params[k] += 1
|
||||
if used_params[k] > 1:
|
||||
duplicate_params[k] = v
|
||||
|
||||
for k, v in duplicate_params.items():
|
||||
LOG.warning(
|
||||
'Duplicate parameter defined. Key: "%s", Current Value: %s', k,
|
||||
yaml.dump(v, default_flow_style=False)
|
||||
)
|
||||
|
|
|
@ -317,7 +317,7 @@ class DeployOvercloud(command.Command):
|
|||
rewritten_user_environments.append((env_path, abs_env_path))
|
||||
utils.check_prohibited_overrides(protected_overrides,
|
||||
rewritten_user_environments)
|
||||
|
||||
utils.duplicate_param_check(user_environments=user_environments)
|
||||
created_env_files.extend(user_environments)
|
||||
|
||||
return created_env_files
|
||||
|
|
|
@ -72,6 +72,9 @@ class UpdatePrepare(DeployOvercloud):
|
|||
# Throw deprecation warning if service is enabled and
|
||||
# ask user if update should still be continued.
|
||||
if parsed_args.environment_files:
|
||||
oooutils.duplicate_param_check(
|
||||
user_environments=parsed_args.environment_files
|
||||
)
|
||||
oooutils.check_deprecated_service_is_enabled(
|
||||
parsed_args.environment_files)
|
||||
|
||||
|
|
|
@ -65,6 +65,9 @@ class UpgradePrepare(DeployOvercloud):
|
|||
# Throw deprecation warning if service is enabled and
|
||||
# ask user if upgrade should still be continued.
|
||||
if parsed_args.environment_files:
|
||||
oooutils.duplicate_param_check(
|
||||
user_environments=parsed_args.environment_files
|
||||
)
|
||||
oooutils.check_deprecated_service_is_enabled(
|
||||
parsed_args.environment_files)
|
||||
|
||||
|
|
|
@ -556,6 +556,7 @@ class Deploy(command.Command):
|
|||
|
||||
def _load_user_params(self, user_environments):
|
||||
user_params = {}
|
||||
utils.duplicate_param_check(user_environments=user_environments)
|
||||
for env_file in user_environments:
|
||||
# undercloud and minion heat stack virtual state tracking is not
|
||||
# available yet
|
||||
|
|
Loading…
Reference in New Issue