diff options
Diffstat (limited to 'plugins/modules/vyos_logging.py')
| -rw-r--r-- | plugins/modules/vyos_logging.py | 169 | 
1 files changed, 94 insertions, 75 deletions
| diff --git a/plugins/modules/vyos_logging.py b/plugins/modules/vyos_logging.py index a94a8bd..1fd0ca2 100644 --- a/plugins/modules/vyos_logging.py +++ b/plugins/modules/vyos_logging.py @@ -19,9 +19,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 = """  --- @@ -110,12 +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 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_to_commands(updates, module): @@ -123,27 +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']: -                commands.append('delete system syslog {0} {1} facility {2} level {3}'.format( -                    dest, name, facility, level)) +        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 +                    ) +                )              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']: -                commands.append('set system syslog {0} {1} facility {2} level {3}'.format( -                    dest, name, facility, level)) +                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"]: +                commands.append( +                    "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)) +                commands.append( +                    "set system syslog {0} facility {1} level {2}".format( +                        dest, facility, level +                    ) +                )      return commands @@ -152,33 +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 @@ -186,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: @@ -197,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 @@ -215,11 +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) @@ -228,40 +245,42 @@ def main():      remove_default_spec(aggregate_spec)      argument_spec = dict( -        aggregate=dict(type='list', elements='dict', options=aggregate_spec), +        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() | 
