mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 01:57:35 -03:30
This commit includes all the changes involved in converting the old Ansible Tower modules from commits in Ansible core into the AWX collection that replaces it. Also includes work needed to integrate it into the AWX processes like tests, docs, and the Makefile. Apply changes from content_collector tool Add integrated module tests operate via run_module fixture add makefile target for them Add flake8 target and fix flake8 errors Update README Make consolidated target for testing modules
105 lines
2.5 KiB
Python
105 lines
2.5 KiB
Python
#!/usr/bin/python
|
|
# coding: utf-8 -*-
|
|
|
|
# (c) 2018, Nikhil Jain <nikjain@redhat.com>
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
from __future__ import absolute_import, division, print_function
|
|
__metaclass__ = type
|
|
|
|
|
|
ANSIBLE_METADATA = {'metadata_version': '1.1',
|
|
'status': ['preview'],
|
|
'supported_by': 'community'}
|
|
|
|
|
|
DOCUMENTATION = '''
|
|
---
|
|
module: tower_settings
|
|
author: "Nikhil Jain (@jainnikhil30)"
|
|
version_added: "2.7"
|
|
short_description: Modify Ansible Tower settings.
|
|
description:
|
|
- Modify Ansible Tower settings. See
|
|
U(https://www.ansible.com/tower) for an overview.
|
|
options:
|
|
name:
|
|
description:
|
|
- Name of setting to modify
|
|
required: True
|
|
value:
|
|
description:
|
|
- Value to be modified for given setting.
|
|
required: True
|
|
extends_documentation_fragment: tower
|
|
'''
|
|
|
|
RETURN = ''' # '''
|
|
|
|
EXAMPLES = '''
|
|
- name: Set the value of AWX_PROOT_BASE_PATH
|
|
tower_settings:
|
|
name: AWX_PROOT_BASE_PATH
|
|
value: "/tmp"
|
|
register: testing_settings
|
|
|
|
- name: Set the value of AWX_PROOT_SHOW_PATHS
|
|
tower_settings:
|
|
name: "AWX_PROOT_SHOW_PATHS"
|
|
value: "'/var/lib/awx/projects/', '/tmp'"
|
|
register: testing_settings
|
|
|
|
- name: Set the LDAP Auth Bind Password
|
|
tower_settings:
|
|
name: "AUTH_LDAP_BIND_PASSWORD"
|
|
value: "Password"
|
|
no_log: true
|
|
'''
|
|
|
|
from ..module_utils.ansible_tower import TowerModule, tower_auth_config, tower_check_mode
|
|
|
|
try:
|
|
import tower_cli
|
|
import tower_cli.exceptions as exc
|
|
|
|
from tower_cli.conf import settings
|
|
except ImportError:
|
|
pass
|
|
|
|
|
|
def main():
|
|
argument_spec = dict(
|
|
name=dict(required=True),
|
|
value=dict(required=True),
|
|
)
|
|
|
|
module = TowerModule(
|
|
argument_spec=argument_spec,
|
|
supports_check_mode=False
|
|
)
|
|
|
|
json_output = {}
|
|
|
|
name = module.params.get('name')
|
|
value = module.params.get('value')
|
|
|
|
tower_auth = tower_auth_config(module)
|
|
with settings.runtime_values(**tower_auth):
|
|
tower_check_mode(module)
|
|
try:
|
|
setting = tower_cli.get_resource('setting')
|
|
result = setting.modify(setting=name, value=value)
|
|
|
|
json_output['id'] = result['id']
|
|
json_output['value'] = result['value']
|
|
|
|
except (exc.ConnectionError, exc.BadRequest, exc.AuthError) as excinfo:
|
|
module.fail_json(msg='Failed to modify the setting: {0}'.format(excinfo), changed=False)
|
|
|
|
json_output['changed'] = result['changed']
|
|
module.exit_json(**json_output)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|