mirror of
https://github.com/ansible/awx.git
synced 2026-05-19 14:57:39 -02:30
project update fix
This commit is contained in:
@@ -204,6 +204,7 @@ def wait_for_project_update(module, last_request):
|
|||||||
wait = module.params.get('wait')
|
wait = module.params.get('wait')
|
||||||
timeout = module.params.get('timeout')
|
timeout = module.params.get('timeout')
|
||||||
interval = module.params.get('interval')
|
interval = module.params.get('interval')
|
||||||
|
scm_revision_original = last_request['scm_revision']
|
||||||
|
|
||||||
if 'current_update' in last_request['summary_fields']:
|
if 'current_update' in last_request['summary_fields']:
|
||||||
running = True
|
running = True
|
||||||
@@ -229,10 +230,15 @@ def wait_for_project_update(module, last_request):
|
|||||||
start = time.time()
|
start = time.time()
|
||||||
|
|
||||||
# Invoke wait function
|
# Invoke wait function
|
||||||
module.wait_on_url(
|
result_final = module.wait_on_url(
|
||||||
url=result['json']['url'], object_name=module.get_item_name(last_request), object_type='Project Update', timeout=timeout, interval=interval
|
url=result['json']['url'], object_name=module.get_item_name(last_request), object_type='Project Update', timeout=timeout, interval=interval
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Set Changed to correct value depending on if hash changed Also output refspec comparision
|
||||||
|
module.json_output['changed'] = True
|
||||||
|
if result_final['json']['scm_revision'] == scm_revision_original:
|
||||||
|
module.json_output['changed'] = False
|
||||||
|
|
||||||
module.exit_json(**module.json_output)
|
module.exit_json(**module.json_output)
|
||||||
|
|
||||||
|
|
||||||
@@ -380,10 +386,21 @@ def main():
|
|||||||
on_change = wait_for_project_update
|
on_change = wait_for_project_update
|
||||||
|
|
||||||
# If the state was present and we can let the module build or update the existing project, this will return on its own
|
# If the state was present and we can let the module build or update the existing project, this will return on its own
|
||||||
module.create_or_update_if_needed(
|
response = module.create_or_update_if_needed(
|
||||||
project, project_fields, endpoint='projects', item_type='project', associations=association_fields, on_create=on_change, on_update=on_change
|
project,
|
||||||
|
project_fields,
|
||||||
|
endpoint='projects',
|
||||||
|
item_type='project',
|
||||||
|
associations=association_fields,
|
||||||
|
on_create=on_change,
|
||||||
|
on_update=on_change,
|
||||||
|
auto_exit=not update_project,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if update_project:
|
||||||
|
wait_for_project_update(module, response)
|
||||||
|
module.exit_json(**module.json_output)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
org_name: "AWX-Collection-tests-tower_project-org-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
|
org_name: "AWX-Collection-tests-tower_project-org-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
|
||||||
cred_name: "AWX-Collection-tests-tower_project-cred-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
|
cred_name: "AWX-Collection-tests-tower_project-cred-{{ lookup('password', '/dev/null chars=ascii_letters length=16') }}"
|
||||||
|
|
||||||
|
- block:
|
||||||
- name: Create an SCM Credential
|
- name: Create an SCM Credential
|
||||||
tower_credential:
|
tower_credential:
|
||||||
name: "{{ scm_cred_name }}"
|
name: "{{ scm_cred_name }}"
|
||||||
@@ -20,13 +21,13 @@
|
|||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
|
|
||||||
- name: Create a git project without credentials without waiting
|
- name: Create a git project without credentials and wait
|
||||||
tower_project:
|
tower_project:
|
||||||
name: "{{ project_name1 }}"
|
name: "{{ project_name1 }}"
|
||||||
organization: Default
|
organization: Default
|
||||||
scm_type: git
|
scm_type: git
|
||||||
scm_url: https://github.com/ansible/test-playbooks
|
scm_url: https://github.com/ansible/test-playbooks
|
||||||
wait: false
|
wait: true
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- assert:
|
- assert:
|
||||||
@@ -39,8 +40,9 @@
|
|||||||
organization: Default
|
organization: Default
|
||||||
scm_type: git
|
scm_type: git
|
||||||
scm_url: https://github.com/ansible/test-playbooks
|
scm_url: https://github.com/ansible/test-playbooks
|
||||||
wait: true
|
wait: false
|
||||||
register: result
|
register: result
|
||||||
|
ignore_errors: true
|
||||||
|
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
@@ -139,7 +141,7 @@
|
|||||||
that:
|
that:
|
||||||
- result is changed
|
- result is changed
|
||||||
|
|
||||||
- name: Update a git project, update the project and wait.
|
- name: Update the project and wait. Verify not changed as no change made to repo and refspec not changed
|
||||||
tower_project:
|
tower_project:
|
||||||
name: "{{ project_name3 }}"
|
name: "{{ project_name3 }}"
|
||||||
organization: Default
|
organization: Default
|
||||||
@@ -151,16 +153,9 @@
|
|||||||
update_project: true
|
update_project: true
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Update a git project, update the project without waiting.
|
- assert:
|
||||||
tower_project:
|
that:
|
||||||
name: "{{ project_name3 }}"
|
- result is not changed
|
||||||
organization: Default
|
|
||||||
scm_type: git
|
|
||||||
scm_branch: empty_branch
|
|
||||||
scm_url: https://github.com/ansible/test-playbooks
|
|
||||||
wait: false
|
|
||||||
update_project: true
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- name: Create a job template that overrides the project scm_branch
|
- name: Create a job template that overrides the project scm_branch
|
||||||
tower_job_template:
|
tower_job_template:
|
||||||
@@ -188,6 +183,7 @@
|
|||||||
that:
|
that:
|
||||||
- job is successful
|
- job is successful
|
||||||
|
|
||||||
|
always:
|
||||||
- name: Delete the test job_template
|
- name: Delete the test job_template
|
||||||
tower_job_template:
|
tower_job_template:
|
||||||
name: "{{ jt1 }}"
|
name: "{{ jt1 }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user