diff options
Diffstat (limited to 'plugins/modules/vyos_logging.py')
-rw-r--r-- | plugins/modules/vyos_logging.py | 169 |
1 files changed, 90 insertions, 79 deletions
diff --git a/plugins/modules/vyos_logging.py b/plugins/modules/vyos_logging.py index e682e42..1fd0ca2 100644 --- a/plugins/modules/vyos_logging.py +++ b/plugins/modules/vyos_logging.py @@ -20,9 +20,9 @@ # ANSIBLE_METADATA = { - 'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'network' + "metadata_version": "1.1", + "status": ["preview"], + "supported_by": "network", } DOCUMENTATION = """ @@ -112,11 +112,14 @@ from copy import deepcopy from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.network.common.utils import remove_default_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 ( + 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 ( + vyos_argument_spec, +) def spec_to_commands(updates, module): @@ -124,31 +127,39 @@ def spec_to_commands(updates, module): want, have = updates for w in want: - dest = w['dest'] - name = w['name'] - facility = w['facility'] - level = w['level'] - state = w['state'] - del w['state'] - - if state == 'absent' and w in have: - if w['name']: + dest = w["dest"] + name = w["name"] + facility = w["facility"] + level = w["level"] + state = w["state"] + del w["state"] + + if state == "absent" and w in have: + if w["name"]: commands.append( - 'delete system syslog {0} {1} facility {2} level {3}'. - format(dest, name, facility, level)) + "delete system syslog {0} {1} facility {2} level {3}".format( + dest, name, facility, level + ) + ) else: commands.append( - 'delete system syslog {0} facility {1} level {2}'.format( - dest, facility, level)) - elif state == 'present' and w not in have: - if w['name']: + "delete system syslog {0} facility {1} level {2}".format( + dest, facility, level + ) + ) + elif state == "present" and w not in have: + if w["name"]: commands.append( - 'set system syslog {0} {1} facility {2} level {3}'.format( - dest, name, facility, level)) + "set system syslog {0} {1} facility {2} level {3}".format( + dest, name, facility, level + ) + ) else: commands.append( - 'set system syslog {0} facility {1} level {2}'.format( - dest, facility, level)) + "set system syslog {0} facility {1} level {2}".format( + dest, facility, level + ) + ) return commands @@ -157,35 +168,32 @@ def config_to_dict(module): data = get_config(module) obj = [] - for line in data.split('\n'): - if line.startswith('set system syslog'): - match = re.search(r'set system syslog (\S+)', line, re.M) + for line in data.split("\n"): + if line.startswith("set system syslog"): + match = re.search(r"set system syslog (\S+)", line, re.M) dest = match.group(1) - if dest == 'host': - match = re.search(r'host (\S+)', line, re.M) + if dest == "host": + match = re.search(r"host (\S+)", line, re.M) name = match.group(1) - elif dest == 'file': - match = re.search(r'file (\S+)', line, re.M) + elif dest == "file": + match = re.search(r"file (\S+)", line, re.M) name = match.group(1) - elif dest == 'user': - match = re.search(r'user (\S+)', line, re.M) + elif dest == "user": + match = re.search(r"user (\S+)", line, re.M) name = match.group(1) else: name = None - if 'facility' in line: - match = re.search(r'facility (\S+)', line, re.M) + if "facility" in line: + match = re.search(r"facility (\S+)", line, re.M) facility = match.group(1) - if 'level' in line: - match = re.search(r'level (\S+)', line, re.M) + if "level" in line: + match = re.search(r"level (\S+)", line, re.M) level = match.group(1).strip("'") - obj.append({ - 'dest': dest, - 'name': name, - 'facility': facility, - 'level': level - }) + obj.append( + {"dest": dest, "name": name, "facility": facility, "level": level} + ) return obj @@ -193,7 +201,7 @@ def config_to_dict(module): def map_params_to_obj(module, required_if=None): obj = [] - aggregate = module.params.get('aggregate') + aggregate = module.params.get("aggregate") if aggregate: for item in aggregate: for key in item: @@ -204,16 +212,18 @@ def map_params_to_obj(module, required_if=None): obj.append(item.copy()) else: - if module.params['dest'] not in ('host', 'file', 'user'): - module.params['name'] = None - - obj.append({ - 'dest': module.params['dest'], - 'name': module.params['name'], - 'facility': module.params['facility'], - 'level': module.params['level'], - 'state': module.params['state'] - }) + if module.params["dest"] not in ("host", "file", "user"): + module.params["name"] = None + + obj.append( + { + "dest": module.params["dest"], + "name": module.params["name"], + "facility": module.params["facility"], + "level": module.params["level"], + "state": module.params["state"], + } + ) return obj @@ -222,12 +232,11 @@ def main(): """ main entry point for module execution """ element_spec = dict( - dest=dict(type='str', - choices=['console', 'file', 'global', 'host', 'user']), - name=dict(type='str'), - facility=dict(type='str'), - level=dict(type='str'), - state=dict(default='present', choices=['present', 'absent']), + dest=dict(type="str", choices=["console", "file", "global", "host", "user"]), + name=dict(type="str"), + facility=dict(type="str"), + level=dict(type="str"), + state=dict(default="present", choices=["present", "absent"]), ) aggregate_spec = deepcopy(element_spec) @@ -235,41 +244,43 @@ def main(): # remove default in aggregate spec, to handle common arguments remove_default_spec(aggregate_spec) - argument_spec = dict(aggregate=dict(type='list', - elements='dict', - options=aggregate_spec), ) + argument_spec = dict( + aggregate=dict(type="list", elements="dict", options=aggregate_spec) + ) argument_spec.update(element_spec) argument_spec.update(vyos_argument_spec) - required_if = [('dest', 'host', ['name', 'facility', 'level']), - ('dest', 'file', ['name', 'facility', 'level']), - ('dest', 'user', ['name', 'facility', 'level']), - ('dest', 'console', ['facility', 'level']), - ('dest', 'global', ['facility', 'level'])] - - module = AnsibleModule(argument_spec=argument_spec, - required_if=required_if, - supports_check_mode=True) + required_if = [ + ("dest", "host", ["name", "facility", "level"]), + ("dest", "file", ["name", "facility", "level"]), + ("dest", "user", ["name", "facility", "level"]), + ("dest", "console", ["facility", "level"]), + ("dest", "global", ["facility", "level"]), + ] + + module = AnsibleModule( + argument_spec=argument_spec, required_if=required_if, supports_check_mode=True + ) warnings = list() - result = {'changed': False} + result = {"changed": False} if warnings: - result['warnings'] = warnings + result["warnings"] = warnings want = map_params_to_obj(module, required_if=required_if) have = config_to_dict(module) commands = spec_to_commands((want, have), module) - result['commands'] = commands + result["commands"] = commands if commands: commit = not module.check_mode load_config(module, commands, commit=commit) - result['changed'] = True + result["changed"] = True module.exit_json(**result) -if __name__ == '__main__': +if __name__ == "__main__": main() |