diff options
author | ansible-zuul[bot] <48994755+ansible-zuul[bot]@users.noreply.github.com> | 2019-08-09 18:52:36 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-09 18:52:36 +0000 |
commit | fbe294b702e757252a66f64edf66bce060e87494 (patch) | |
tree | 6910d3c526815c0e21f20cfbccd08bea727cf11c /plugins/modules/vyos_system.py | |
parent | 4a485b24db1abf87cdf0d4ef2f7acb1159aaab68 (diff) | |
parent | 5fb9df4e907a6ab2da7a6c2dafdec9c1971e8d44 (diff) | |
download | vyos.vyos-fbe294b702e757252a66f64edf66bce060e87494.tar.gz vyos.vyos-fbe294b702e757252a66f64edf66bce060e87494.zip |
Merge pull request #8 from ansible-network/bt_blacked
Bt blacked
Reviewed-by: Paul Belanger
https://github.com/pabelanger
Diffstat (limited to 'plugins/modules/vyos_system.py')
-rw-r--r-- | plugins/modules/vyos_system.py | 94 |
1 files changed, 49 insertions, 45 deletions
diff --git a/plugins/modules/vyos_system.py b/plugins/modules/vyos_system.py index 20cf907f..99841542 100644 --- a/plugins/modules/vyos_system.py +++ b/plugins/modules/vyos_system.py @@ -17,9 +17,11 @@ # along with Ansible. If not, see <http://www.gnu.org/licenses/>. # -ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'network'} +ANSIBLE_METADATA = { + "metadata_version": "1.1", + "status": ["preview"], + "supported_by": "network", +} DOCUMENTATION = """ @@ -92,20 +94,22 @@ EXAMPLES = """ """ from ansible.module_utils.basic import AnsibleModule -from ansible_collections.vyos.vyos.plugins.module_utils.network. \ - vyos.vyos import get_config, load_config - -from ansible_collections.vyos.vyos.plugins.module_utils.network. \ - vyos.vyos import vyos_argument_spec +from ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.vyos import ( + get_config, + load_config, +) +from ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.vyos import ( + vyos_argument_spec, +) def spec_key_to_device_key(key): - device_key = key.replace('_', '-') + device_key = key.replace("_", "-") # domain-search is longer than just it's key - if device_key == 'domain-search': - device_key += ' domain' + if device_key == "domain-search": + device_key += " domain" return device_key @@ -113,17 +117,17 @@ def spec_key_to_device_key(key): def config_to_dict(module): data = get_config(module) - config = {'domain_search': [], 'name_server': []} + config = {"domain_search": [], "name_server": []} - for line in data.split('\n'): - if line.startswith('set system host-name'): - config['host_name'] = line[22:-1] - elif line.startswith('set system domain-name'): - config['domain_name'] = line[24:-1] - elif line.startswith('set system domain-search domain'): - config['domain_search'].append(line[33:-1]) - elif line.startswith('set system name-server'): - config['name_server'].append(line[24:-1]) + for line in data.split("\n"): + if line.startswith("set system host-name"): + config["host_name"] = line[22:-1] + elif line.startswith("set system domain-name"): + config["domain_name"] = line[24:-1] + elif line.startswith("set system domain-search domain"): + config["domain_search"].append(line[33:-1]) + elif line.startswith("set system name-server"): + config["name_server"].append(line[24:-1]) return config @@ -131,13 +135,13 @@ def config_to_dict(module): def spec_to_commands(want, have): commands = [] - state = want.pop('state') + state = want.pop("state") # state='absent' by itself has special meaning - if state == 'absent' and all(v is None for v in want.values()): + if state == "absent" and all(v is None for v in want.values()): # Clear everything for key in have: - commands.append('delete system %s' % spec_key_to_device_key(key)) + commands.append("delete system %s" % spec_key_to_device_key(key)) for key in want: if want[key] is None: @@ -148,19 +152,19 @@ def spec_to_commands(want, have): device_key = spec_key_to_device_key(key) # These keys are lists which may need to be reconciled with the device - if key in ['domain_search', 'name_server']: + if key in ["domain_search", "name_server"]: if not proposed: # Empty list was passed, delete all values commands.append("delete system %s" % device_key) for config in proposed: - if state == 'absent' and config in current: + if state == "absent" and config in current: commands.append("delete system %s '%s'" % (device_key, config)) - elif state == 'present' and config not in current: + elif state == "present" and config not in current: commands.append("set system %s '%s'" % (device_key, config)) else: - if state == 'absent' and current and proposed: - commands.append('delete system %s' % device_key) - elif state == 'present' and proposed and proposed != current: + if state == "absent" and current and proposed: + commands.append("delete system %s" % device_key) + elif state == "present" and proposed and proposed != current: commands.append("set system %s '%s'" % (device_key, proposed)) return commands @@ -168,21 +172,21 @@ def spec_to_commands(want, have): def map_param_to_obj(module): return { - 'host_name': module.params['host_name'], - 'domain_name': module.params['domain_name'], - 'domain_search': module.params['domain_search'], - 'name_server': module.params['name_server'], - 'state': module.params['state'] + "host_name": module.params["host_name"], + "domain_name": module.params["domain_name"], + "domain_search": module.params["domain_search"], + "name_server": module.params["name_server"], + "state": module.params["state"], } def main(): argument_spec = dict( - host_name=dict(type='str'), - domain_name=dict(type='str'), - domain_search=dict(type='list'), - name_server=dict(type='list', aliases=['name_servers']), - state=dict(type='str', default='present', choices=['present', 'absent']), + host_name=dict(type="str"), + domain_name=dict(type="str"), + domain_search=dict(type="list"), + name_server=dict(type="list", aliases=["name_servers"]), + state=dict(type="str", default="present", choices=["present", "absent"]), ) argument_spec.update(vyos_argument_spec) @@ -190,26 +194,26 @@ def main(): module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, - mutually_exclusive=[('domain_name', 'domain_search')], + mutually_exclusive=[("domain_name", "domain_search")], ) warnings = list() - result = {'changed': False, 'warnings': warnings} + result = {"changed": False, "warnings": warnings} want = map_param_to_obj(module) have = config_to_dict(module) commands = spec_to_commands(want, have) - result['commands'] = commands + result["commands"] = commands if commands: commit = not module.check_mode response = load_config(module, commands, commit=commit) - result['changed'] = True + result["changed"] = True module.exit_json(**result) -if __name__ == '__main__': +if __name__ == "__main__": main() |