Changing test suite and fixing user issue in tower_api

This commit is contained in:
John Westcott IV
2020-08-20 11:14:58 -04:00
committed by beeankha
parent e9d66df77a
commit 0fd618d88b
2 changed files with 105 additions and 63 deletions

View File

@@ -107,7 +107,7 @@ class TowerAPIModule(TowerModule):
def get_one_by_name_or_id(self, endpoint, name_or_id): def get_one_by_name_or_id(self, endpoint, name_or_id):
name_field = 'name' name_field = 'name'
if endpoint is 'users': if endpoint == 'users':
name_field = 'username' name_field = 'username'
query_params = {'or__{0}'.format(name_field): name_or_id} query_params = {'or__{0}'.format(name_field): name_or_id}
@@ -118,10 +118,14 @@ class TowerAPIModule(TowerModule):
pass pass
response = self.get_endpoint(endpoint, **{'data': query_params}) response = self.get_endpoint(endpoint, **{'data': query_params})
if response['status_code'] != 200:
self.fail_json(msg="Failed to query endpoint {0} for {1} {2} ({3}), see results".format(endpoint, name_field, name_or_id, response['status_code']), resuls=response)
if response['json']['count'] == 1: if response['json']['count'] == 1:
return response['json']['results'][0] return response['json']['results'][0]
elif response['json']['count'] == 2: elif response['json']['count'] == 2:
for tower_object in response['json']['results']: for tower_object in response['json']['results']:
if tower_object['name'] == name_or_id:
return tower_object return tower_object
# We shouldn't get here because we found 2 objects and ID has to be unique, so one of the objects must have a matching name # We shouldn't get here because we found 2 objects and ID has to be unique, so one of the objects must have a matching name
elif response['json']['count'] == 0: elif response['json']['count'] == 0:

View File

@@ -1,8 +1,14 @@
--- ---
- name: Generate a test id
set_fact:
test_id: "{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
- name: Generate names - name: Generate names
set_fact: set_fact:
username: "AWX-Collection-tests-tower_role-user-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}" username: "AWX-Collection-tests-tower_role-user-{{ test_id }}"
project_name: "AWX-Collection-tests-tower_role-project-{{ test_id }}"
- block:
- name: Create a User - name: Create a User
tower_user: tower_user:
first_name: Joe first_name: Joe
@@ -17,11 +23,39 @@
that: that:
- "result is changed" - "result is changed"
- name: Create a project
tower_project:
name: "{{ project_name }}"
organization: Default
scm_type: git
scm_url: https://github.com/ansible/test-playbooks
wait: false
register: project_info
- assert:
that:
- project_info is changed
- name: Add Joe to the update role of the default Project - name: Add Joe to the update role of the default Project
tower_role: tower_role:
user: "{{ username }}" user: "{{ username }}"
role: update role: update
project: Demo Project project: "Demo Project"
state: "{{ item }}"
register: result
with_items:
- "present"
- "absent"
- assert:
that:
- "result is changed"
- name: Add Joe to the new project by ID
tower_role:
user: "{{ username }}"
role: update
project: "{{ project_info['id'] }}"
state: "{{ item }}" state: "{{ item }}"
register: result register: result
with_items: with_items:
@@ -62,6 +96,7 @@
that: that:
- "result is not changed" - "result is not changed"
always:
- name: Delete a User - name: Delete a User
tower_user: tower_user:
username: "{{ username }}" username: "{{ username }}"
@@ -69,6 +104,9 @@
state: absent state: absent
register: result register: result
- assert: - name: Delete the project
that: tower_project:
- "result is changed" name: "{{ project_name }}"
organization: Default
state: absent
register: result