mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-10-06 00:14:02 -07:00
* refactors nios api shared code to handle provider better This change refactors the shared code to be easily shared between modules, plugins and dynamic inventory scripts. All parts now implement the provider arguments uniformly. This also provides a centralized fix to suppress urllib3 warnings coming from the requests library implemented by infoblox_client * fix up pep8 errors * fix missing var name
131 lines
3.6 KiB
Python
131 lines
3.6 KiB
Python
#!/usr/bin/python
|
|
# Copyright (c) 2018 Red Hat, Inc.
|
|
# 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: nios_dns_view
|
|
version_added: "2.5"
|
|
author: "Peter Sprygada (@privateip)"
|
|
short_description: Configure Infoblox NIOS DNS views
|
|
description:
|
|
- Adds and/or removes instances of DNS view objects from
|
|
Infoblox NIOS servers. This module manages NIOS C(view) objects
|
|
using the Infoblox WAPI interface over REST.
|
|
requirements:
|
|
- infoblox_client
|
|
extends_documentation_fragment: nios
|
|
options:
|
|
name:
|
|
description:
|
|
- Specifies the name of the DNS view to add and/or remove from the
|
|
system configuration based on the setting of the C(state) argument.
|
|
required: true
|
|
aliases:
|
|
- view
|
|
network_view:
|
|
description:
|
|
- Specifies the name of the network view to assign the configured
|
|
DNS view to. The network view must already be configured on the
|
|
target system.
|
|
required: true
|
|
default: default
|
|
extattrs:
|
|
description:
|
|
- Allows for the configuration of Extensible Attributes on the
|
|
instance of the object. This argument accepts a set of key / value
|
|
pairs for configuration.
|
|
required: false
|
|
comment:
|
|
description:
|
|
- Configures a text string comment to be associated with the instance
|
|
of this object. The provided text string will be configured on the
|
|
object instance.
|
|
required: false
|
|
state:
|
|
description:
|
|
- Configures the intended state of the instance of the object on
|
|
the NIOS server. When this value is set to C(present), the object
|
|
is configured on the device and when this value is set to C(absent)
|
|
the value is removed (if necessary) from the device.
|
|
required: false
|
|
default: present
|
|
choices:
|
|
- present
|
|
- absent
|
|
'''
|
|
|
|
EXAMPLES = '''
|
|
- name: configure a new dns view instance
|
|
nios_dns_view:
|
|
name: ansible-dns
|
|
state: present
|
|
provider:
|
|
host: "{{ inventory_hostname_short }}"
|
|
username: admin
|
|
password: admin
|
|
|
|
- name: update the comment for dns view
|
|
nios_dns_view:
|
|
name: ansible-dns
|
|
comment: this is an example comment
|
|
state: present
|
|
provider:
|
|
host: "{{ inventory_hostname_short }}"
|
|
username: admin
|
|
password: admin
|
|
|
|
- name: remove the dns view instance
|
|
nios_dns_view:
|
|
name: ansible-dns
|
|
state: absent
|
|
provider:
|
|
host: "{{ inventory_hostname_short }}"
|
|
username: admin
|
|
password: admin
|
|
'''
|
|
|
|
RETURN = ''' # '''
|
|
|
|
from ansible.module_utils.basic import AnsibleModule
|
|
from ansible.module_utils.net_tools.nios.api import WapiModule
|
|
|
|
|
|
def main():
|
|
''' Main entry point for module execution
|
|
'''
|
|
ib_spec = dict(
|
|
name=dict(required=True, aliases=['view'], ib_req=True),
|
|
network_view=dict(default='default', ib_req=True),
|
|
|
|
extattrs=dict(type='dict'),
|
|
comment=dict()
|
|
)
|
|
|
|
argument_spec = dict(
|
|
provider=dict(required=True),
|
|
state=dict(default='present', choices=['present', 'absent'])
|
|
)
|
|
|
|
argument_spec.update(ib_spec)
|
|
argument_spec.update(WapiModule.provider_spec)
|
|
|
|
module = AnsibleModule(argument_spec=argument_spec,
|
|
supports_check_mode=True)
|
|
|
|
wapi = WapiModule(module)
|
|
result = wapi.run('view', ib_spec)
|
|
|
|
module.exit_json(**result)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|