Add scm_update_cache_timeout, job_timeout and custom_virtualenv to tower_project (#51330)
* adding scm_update_cache_timeout and job_timeout to tower_project module * add support for cache_timeout, job_timeout and custom_venv for tower_project module * add the version_addedpull/4420/head
parent
195de8b460
commit
b9f5a343c4
|
@ -62,6 +62,21 @@ options:
|
||||||
- Before an update to the local repository before launching a job with this project.
|
- Before an update to the local repository before launching a job with this project.
|
||||||
type: bool
|
type: bool
|
||||||
default: 'no'
|
default: 'no'
|
||||||
|
scm_update_cache_timeout:
|
||||||
|
version_added: "2.8"
|
||||||
|
description:
|
||||||
|
- Cache Timeout to cache prior project syncs for a certain number of seconds.
|
||||||
|
Only valid if scm_update_on_launch is to True, otherwise ignored.
|
||||||
|
default: 0
|
||||||
|
job_timeout:
|
||||||
|
version_added: "2.8"
|
||||||
|
description:
|
||||||
|
- The amount of time (in seconds) to run before the SCM Update is canceled. A value of 0 means no timeout.
|
||||||
|
default: 0
|
||||||
|
custom_virtualenv:
|
||||||
|
version_added: "2.8"
|
||||||
|
description:
|
||||||
|
- Local absolute file path containing a custom Python virtualenv to use
|
||||||
organization:
|
organization:
|
||||||
description:
|
description:
|
||||||
- Primary key of organization for project.
|
- Primary key of organization for project.
|
||||||
|
@ -82,6 +97,17 @@ EXAMPLES = '''
|
||||||
organization: "test"
|
organization: "test"
|
||||||
state: present
|
state: present
|
||||||
tower_config_file: "~/tower_cli.cfg"
|
tower_config_file: "~/tower_cli.cfg"
|
||||||
|
|
||||||
|
- name: Add Tower Project with cache timeout and custom virtualenv
|
||||||
|
tower_project:
|
||||||
|
name: "Foo"
|
||||||
|
description: "Foo bar project"
|
||||||
|
organization: "test"
|
||||||
|
scm_update_on_launch: True
|
||||||
|
scm_update_cache_timeout: 60
|
||||||
|
custom_virtualenv: "/var/lib/awx/venv/ansible-2.2"
|
||||||
|
state: present
|
||||||
|
tower_config_file: "~/tower_cli.cfg"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible.module_utils.ansible_tower import TowerModule, tower_auth_config, tower_check_mode
|
from ansible.module_utils.ansible_tower import TowerModule, tower_auth_config, tower_check_mode
|
||||||
|
@ -107,8 +133,10 @@ def main():
|
||||||
scm_clean=dict(type='bool', default=False),
|
scm_clean=dict(type='bool', default=False),
|
||||||
scm_delete_on_update=dict(type='bool', default=False),
|
scm_delete_on_update=dict(type='bool', default=False),
|
||||||
scm_update_on_launch=dict(type='bool', default=False),
|
scm_update_on_launch=dict(type='bool', default=False),
|
||||||
|
scm_update_cache_timeout=dict(type='int', default=0),
|
||||||
|
job_timeout=dict(type='int', default=0),
|
||||||
|
custom_virtualenv=dict(),
|
||||||
local_path=dict(),
|
local_path=dict(),
|
||||||
|
|
||||||
state=dict(choices=['present', 'absent'], default='present'),
|
state=dict(choices=['present', 'absent'], default='present'),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -127,6 +155,9 @@ def main():
|
||||||
scm_clean = module.params.get('scm_clean')
|
scm_clean = module.params.get('scm_clean')
|
||||||
scm_delete_on_update = module.params.get('scm_delete_on_update')
|
scm_delete_on_update = module.params.get('scm_delete_on_update')
|
||||||
scm_update_on_launch = module.params.get('scm_update_on_launch')
|
scm_update_on_launch = module.params.get('scm_update_on_launch')
|
||||||
|
scm_update_cache_timeout = module.params.get('scm_update_cache_timeout')
|
||||||
|
job_timeout = module.params.get('job_timeout')
|
||||||
|
custom_virtualenv = module.params.get('custom_virtualenv')
|
||||||
state = module.params.get('state')
|
state = module.params.get('state')
|
||||||
|
|
||||||
json_output = {'project': name, 'state': state}
|
json_output = {'project': name, 'state': state}
|
||||||
|
@ -155,12 +186,18 @@ def main():
|
||||||
except (exc.NotFound) as excinfo:
|
except (exc.NotFound) as excinfo:
|
||||||
module.fail_json(msg='Failed to update project, credential not found: {0}'.format(scm_credential), changed=False)
|
module.fail_json(msg='Failed to update project, credential not found: {0}'.format(scm_credential), changed=False)
|
||||||
|
|
||||||
|
if (scm_update_cache_timeout is not None) and (scm_update_on_launch is not True):
|
||||||
|
module.warn('scm_update_cache_timeout will be ignored since scm_update_on_launch was not set to true')
|
||||||
|
|
||||||
result = project.modify(name=name, description=description,
|
result = project.modify(name=name, description=description,
|
||||||
organization=org['id'],
|
organization=org['id'],
|
||||||
scm_type=scm_type, scm_url=scm_url, local_path=local_path,
|
scm_type=scm_type, scm_url=scm_url, local_path=local_path,
|
||||||
scm_branch=scm_branch, scm_clean=scm_clean, credential=scm_credential,
|
scm_branch=scm_branch, scm_clean=scm_clean, credential=scm_credential,
|
||||||
scm_delete_on_update=scm_delete_on_update,
|
scm_delete_on_update=scm_delete_on_update,
|
||||||
scm_update_on_launch=scm_update_on_launch,
|
scm_update_on_launch=scm_update_on_launch,
|
||||||
|
scm_update_cache_timeout=scm_update_cache_timeout,
|
||||||
|
job_timeout=job_timeout,
|
||||||
|
custom_virtualenv=custom_virtualenv,
|
||||||
create_on_missing=True)
|
create_on_missing=True)
|
||||||
json_output['id'] = result['id']
|
json_output['id'] = result['id']
|
||||||
elif state == 'absent':
|
elif state == 'absent':
|
||||||
|
|
Loading…
Reference in New Issue