diff options
author | Ansible Core Team <info@ansible.com> | 2020-03-09 09:40:36 +0000 |
---|---|---|
committer | Ansible Core Team <info@ansible.com> | 2020-03-09 09:40:36 +0000 |
commit | 1915feadd5aede002d5036a52fd7f77c90bd91c2 (patch) | |
tree | ec6e1d474d77a6e16bc38f4583223e9cfd60bab5 /lib/ansible/modules/network/junos/junos_system.py | |
parent | e1b850b0712dceb781e63e3bae2ba0276bb8c004 (diff) | |
download | ansible-1915feadd5aede002d5036a52fd7f77c90bd91c2.tar.gz |
Migrated to junipernetworks.junos
Diffstat (limited to 'lib/ansible/modules/network/junos/junos_system.py')
-rw-r--r-- | lib/ansible/modules/network/junos/junos_system.py | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/lib/ansible/modules/network/junos/junos_system.py b/lib/ansible/modules/network/junos/junos_system.py deleted file mode 100644 index 34e8dcc99d..0000000000 --- a/lib/ansible/modules/network/junos/junos_system.py +++ /dev/null @@ -1,190 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# (c) 2017, Ansible by 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': 'network'} - - -DOCUMENTATION = """ ---- -module: junos_system -version_added: "2.4" -author: "Ganesh Nalawade (@ganeshrn)" -short_description: Manage the system attributes on Juniper JUNOS devices -description: - - This module provides declarative management of node system attributes - on Juniper JUNOS devices. It provides an option to configure host system - parameters or remove those parameters from the device active - configuration. -options: - hostname: - description: - - Configure the device hostname parameter. This option takes an ASCII string value. - domain_name: - description: - - Configure the IP domain name - on the remote device to the provided value. Value - should be in the dotted name form and will be - appended to the C(hostname) to create a fully-qualified - domain name. - domain_search: - description: - - Provides the list of domain suffixes to - append to the hostname for the purpose of doing name resolution. - This argument accepts a list of names and will be reconciled - with the current active configuration on the running node. - name_servers: - description: - - List of DNS name servers by IP address to use to perform name resolution - lookups. This argument accepts either a list of DNS servers See - examples. - state: - description: - - State of the configuration - values in the device's current active configuration. When set - to I(present), the values should be configured in the device active - configuration and when set to I(absent) the values should not be - in the device active configuration - default: present - choices: ['present', 'absent'] - active: - description: - - Specifies whether or not the configuration is active or deactivated - default: True - type: bool -requirements: - - ncclient (>=v0.5.2) -notes: - - This module requires the netconf system service be enabled on - the remote device being managed. - - Tested against vSRX JUNOS version 15.1X49-D15.4, vqfx-10000 JUNOS Version 15.1X53-D60.4. - - Recommended connection is C(netconf). See L(the Junos OS Platform Options,../network/user_guide/platform_junos.html). - - This module also works with C(local) connections for legacy playbooks. -extends_documentation_fragment: junos -""" - -EXAMPLES = """ -- name: configure hostname and domain name - junos_system: - hostname: junos01 - domain_name: test.example.com - domain-search: - - ansible.com - - redhat.com - - juniper.com - -- name: remove configuration - junos_system: - state: absent - -- name: configure name servers - junos_system: - name_servers: - - 8.8.8.8 - - 8.8.4.4 -""" - -RETURN = """ -diff.prepared: - description: Configuration difference before and after applying change. - returned: when configuration is changed and diff option is enabled. - type: str - sample: > - [edit system] - + host-name test; - + domain-name ansible.com; - + domain-search redhat.com; - [edit system name-server] - 172.26.1.1 { ... } - + 8.8.8.8; -""" -import collections - -from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.network.junos.junos import junos_argument_spec, tostring -from ansible.module_utils.network.junos.junos import load_config, map_params_to_obj, map_obj_to_ele -from ansible.module_utils.network.junos.junos import commit_configuration, discard_changes, locked_config - -USE_PERSISTENT_CONNECTION = True - - -def validate_param_values(module, obj): - for key in obj: - # validate the param value (if validator func exists) - validator = globals().get('validate_%s' % key) - if callable(validator): - validator(module.params.get(key), module) - - -def main(): - """ main entry point for module execution - """ - argument_spec = dict( - hostname=dict(), - domain_name=dict(), - domain_search=dict(type='list'), - name_servers=dict(type='list'), - state=dict(choices=['present', 'absent'], default='present'), - active=dict(default=True, type='bool') - ) - - argument_spec.update(junos_argument_spec) - - params = ['hostname', 'domain_name', 'domain_search', 'name_servers'] - required_if = [('state', 'present', params, True), - ('state', 'absent', params, True), - ('state', 'active', params, True), - ('state', 'suspend', params, True)] - - module = AnsibleModule(argument_spec=argument_spec, - required_if=required_if, - supports_check_mode=True) - - warnings = list() - result = {'changed': False} - - if warnings: - result['warnings'] = warnings - - top = 'system' - - param_to_xpath_map = collections.OrderedDict() - param_to_xpath_map.update([ - ('hostname', {'xpath': 'host-name', 'leaf_only': True}), - ('domain_name', {'xpath': 'domain-name', 'leaf_only': True}), - ('domain_search', {'xpath': 'domain-search', 'leaf_only': True, 'value_req': True}), - ('name_servers', {'xpath': 'name-server/name', 'is_key': True}) - ]) - - validate_param_values(module, param_to_xpath_map) - - want = map_params_to_obj(module, param_to_xpath_map) - ele = map_obj_to_ele(module, want, top) - - with locked_config(module): - diff = load_config(module, tostring(ele), warnings, action='merge') - - commit = not module.check_mode - if diff: - if commit: - commit_configuration(module) - else: - discard_changes(module) - result['changed'] = True - - if module._diff: - result['diff'] = {'prepared': diff} - - module.exit_json(**result) - - -if __name__ == "__main__": - main() |