UX - Useful error msg if role is not in roles data

If the user specify a role name that does not exist
in the provided roles data the scipt exits with a
StopIteration error. Catch it and raise RuntimeError
with user friendly error message.

Closes-Bug: #1812530
Change-Id: I704316f66c197668a7d8e373efe00889776d2a85
This commit is contained in:
Harald Jensås 2019-01-20 03:57:03 +01:00
parent 52e273e653
commit 3fa6349089
1 changed files with 9 additions and 3 deletions

View File

@ -209,9 +209,15 @@ def process_templates_and_get_reference_parameters():
# be used when loading the reference file.
with open(OPTS.roles_data) as roles_data_file:
roles_data = yaml.safe_load(roles_data_file)
nic_config_name = next((x.get('deprecated_nic_config_name',
OPTS.role_name.lower() + '.yaml') for x in
roles_data if x['name'] == OPTS.role_name))
try:
nic_config_name = next((x.get('deprecated_nic_config_name',
OPTS.role_name.lower() + '.yaml')
for x in roles_data
if x['name'] == OPTS.role_name))
except StopIteration:
raise RuntimeError('The role: {role_name} is not defined in roles '
'data file: {roles_data_file}'.format(
role_name=OPTS.role_name, roles_data_file=OPTS.roles_data))
refernce_file = '/'.join([temp_dir, 'network/config', NIC_CONFIG_REFERENCE,
nic_config_name])