mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 18:07:36 -02:30
update role to provide better error messages (#12599)
This commit is contained in:
@@ -241,6 +241,7 @@ def main():
|
|||||||
# Lookup actor data
|
# Lookup actor data
|
||||||
# separate actors from resources
|
# separate actors from resources
|
||||||
actor_data = {}
|
actor_data = {}
|
||||||
|
missing_items = []
|
||||||
for key in ('user', 'team'):
|
for key in ('user', 'team'):
|
||||||
if key in resources:
|
if key in resources:
|
||||||
if key == 'user':
|
if key == 'user':
|
||||||
@@ -248,9 +249,14 @@ def main():
|
|||||||
else:
|
else:
|
||||||
lookup_data_populated = lookup_data
|
lookup_data_populated = lookup_data
|
||||||
# Attempt to look up project based on the provided name or ID and lookup data
|
# Attempt to look up project based on the provided name or ID and lookup data
|
||||||
actor_data[key] = module.get_one('{0}s'.format(key), name_or_id=resources[key], data=lookup_data_populated)
|
data = module.get_one('{0}s'.format(key), name_or_id=resources[key], data=lookup_data_populated)
|
||||||
resources.pop(key)
|
if data is None:
|
||||||
|
module.fail_json(
|
||||||
|
msg='Unable to find {0} with name: {1}'.format(key, resources[key]), changed=False
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
actor_data[key] = module.get_one('{0}s'.format(key), name_or_id=resources[key], data=lookup_data_populated)
|
||||||
|
resources.pop(key)
|
||||||
# Lookup Resources
|
# Lookup Resources
|
||||||
resource_data = {}
|
resource_data = {}
|
||||||
for key, value in resources.items():
|
for key, value in resources.items():
|
||||||
@@ -261,9 +267,15 @@ def main():
|
|||||||
lookup_data_populated = {}
|
lookup_data_populated = {}
|
||||||
else:
|
else:
|
||||||
lookup_data_populated = lookup_data
|
lookup_data_populated = lookup_data
|
||||||
|
data = module.get_one(key, name_or_id=resource, data=lookup_data_populated)
|
||||||
resource_data.setdefault(key, []).append(module.get_one(key, name_or_id=resource, data=lookup_data_populated))
|
if data is None:
|
||||||
|
missing_items.append(resource)
|
||||||
|
else:
|
||||||
|
resource_data.setdefault(key, []).append(data)
|
||||||
|
if len(missing_items) > 0:
|
||||||
|
module.fail_json(
|
||||||
|
msg='There were {0} missing items, missing items: {1}'.format(len(missing_items), missing_items), changed=False
|
||||||
|
)
|
||||||
# build association agenda
|
# build association agenda
|
||||||
associations = {}
|
associations = {}
|
||||||
for actor_type, actor in actor_data.items():
|
for actor_type, actor in actor_data.items():
|
||||||
|
|||||||
@@ -121,6 +121,22 @@
|
|||||||
that:
|
that:
|
||||||
- "result is changed"
|
- "result is changed"
|
||||||
|
|
||||||
|
- name: Add Joe to nonexistant job template execute role
|
||||||
|
role:
|
||||||
|
user: "{{ username }}"
|
||||||
|
role: execute
|
||||||
|
workflow: test-role-workflow
|
||||||
|
job_templates:
|
||||||
|
- non existant temp
|
||||||
|
state: present
|
||||||
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- "'There were 1 missing items, missing items' in result.msg"
|
||||||
|
- "'non existant temp' in result.msg"
|
||||||
|
|
||||||
- name: Add Joe to workflow execute role, no-op
|
- name: Add Joe to workflow execute role, no-op
|
||||||
role:
|
role:
|
||||||
user: "{{ username }}"
|
user: "{{ username }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user