Example #1
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "user_peer": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "ca": {
                    "required": False,
                    "type": "str"
                },
                "cn": {
                    "required": False,
                    "type": "str"
                },
                "cn_type": {
                    "required": False,
                    "type": "str",
                    "choices": ["string", "email", "FQDN", "ipv4", "ipv6"]
                },
                "ldap_mode": {
                    "required": False,
                    "type": "str",
                    "choices": ["password", "principal-name"]
                },
                "ldap_password": {
                    "required": False,
                    "type": "str"
                },
                "ldap_server": {
                    "required": False,
                    "type": "str"
                },
                "ldap_username": {
                    "required": False,
                    "type": "str"
                },
                "mandatory_ca_verify": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "ocsp_override_server": {
                    "required": False,
                    "type": "str"
                },
                "passwd": {
                    "required": False,
                    "type": "str"
                },
                "subject": {
                    "required": False,
                    "type": "str"
                },
                "two_factor": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "firewall_address6": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "cache_ttl": {
                    "required": False,
                    "type": "int"
                },
                "color": {
                    "required": False,
                    "type": "int"
                },
                "comment": {
                    "required": False,
                    "type": "str"
                },
                "end_ip": {
                    "required": False,
                    "type": "str"
                },
                "fqdn": {
                    "required": False,
                    "type": "str"
                },
                "host": {
                    "required": False,
                    "type": "str"
                },
                "host_type": {
                    "required": False,
                    "type": "str",
                    "choices": ["any", "specific"]
                },
                "ip6": {
                    "required": False,
                    "type": "str"
                },
                "list": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "ip": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "obj_id": {
                    "required": False,
                    "type": "int"
                },
                "sdn": {
                    "required": False,
                    "type": "str",
                    "choices": ["nsx"]
                },
                "start_ip": {
                    "required": False,
                    "type": "str"
                },
                "subnet_segment": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        },
                        "type": {
                            "required": False,
                            "type": "str",
                            "choices": ["any", "specific"]
                        },
                        "value": {
                            "required": False,
                            "type": "str"
                        }
                    }
                },
                "tagging": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "category": {
                            "required": False,
                            "type": "str"
                        },
                        "name": {
                            "required": True,
                            "type": "str"
                        },
                        "tags": {
                            "required": False,
                            "type": "list",
                            "options": {
                                "name": {
                                    "required": True,
                                    "type": "str"
                                }
                            }
                        }
                    }
                },
                "template": {
                    "required": False,
                    "type": "str"
                },
                "type": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices":
                    ["ipprefix", "iprange", "fqdn", "dynamic", "template"]
                },
                "uuid": {
                    "required": False,
                    "type": "str"
                },
                "visibility": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_firewall(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #3
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "application_name": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "behavior": {
                    "required": False,
                    "type": "str"
                },
                "category": {
                    "required": False,
                    "type": "int"
                },
                "id": {
                    "required": False,
                    "type": "int"
                },
                "metadata": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "id": {
                            "required": True,
                            "type": "int"
                        },
                        "metaid": {
                            "required": False,
                            "type": "int"
                        },
                        "valueid": {
                            "required": False,
                            "type": "int"
                        }
                    }
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "parameter": {
                    "required": False,
                    "type": "str"
                },
                "popularity": {
                    "required": False,
                    "type": "int"
                },
                "protocol": {
                    "required": False,
                    "type": "str"
                },
                "risk": {
                    "required": False,
                    "type": "int"
                },
                "sub_category": {
                    "required": False,
                    "type": "int"
                },
                "technology": {
                    "required": False,
                    "type": "str"
                },
                "vendor": {
                    "required": False,
                    "type": "str"
                },
                "weight": {
                    "required": False,
                    "type": "int"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_application(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #4
0
def main():
    mkeyname = None
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "web_proxy_global": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "fast_policy_match": {"required": False, "type": "str",
                                      "choices": ["enable",
                                                  "disable"]},
                "forward_proxy_auth": {"required": False, "type": "str",
                                       "choices": ["enable",
                                                   "disable"]},
                "forward_server_affinity_timeout": {"required": False, "type": "int"},
                "learn_client_ip": {"required": False, "type": "str",
                                    "choices": ["enable",
                                                "disable"]},
                "learn_client_ip_from_header": {"required": False, "type": "str",
                                                "choices": ["true-client-ip",
                                                            "x-real-ip",
                                                            "x-forwarded-for"]},
                "learn_client_ip_srcaddr": {"required": False, "type": "list",
                                            "options": {
                                                "name": {"required": True, "type": "str"}
                                            }},
                "learn_client_ip_srcaddr6": {"required": False, "type": "list",
                                             "options": {
                                                 "name": {"required": True, "type": "str"}
                                             }},
                "max_message_length": {"required": False, "type": "int"},
                "max_request_length": {"required": False, "type": "int"},
                "max_waf_body_cache_length": {"required": False, "type": "int"},
                "proxy_fqdn": {"required": False, "type": "str"},
                "ssl_ca_cert": {"required": False, "type": "str"},
                "ssl_cert": {"required": False, "type": "str"},
                "strict_web_check": {"required": False, "type": "str",
                                     "choices": ["enable",
                                                 "disable"]},
                "tunnel_non_http": {"required": False, "type": "str",
                                    "choices": ["enable",
                                                "disable"]},
                "unknown_http_version": {"required": False, "type": "str",
                                         "choices": ["reject",
                                                     "tunnel",
                                                     "best-effort"]},
                "webproxy_profile": {"required": False, "type": "str"}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_web_proxy(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #5
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "dlp_settings": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "cache_mem_percent": {
                    "required": False,
                    "type": "int"
                },
                "chunk_size": {
                    "required": False,
                    "type": "int"
                },
                "db_mode": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices": [
                        "stop-adding", "remove-modified-then-oldest",
                        "remove-oldest"
                    ]
                },
                "size": {
                    "required": False,
                    "type": "int"
                },
                "storage_device": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_dlp(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #6
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "system_dns": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "cache_notfound_responses": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "dns_cache_limit": {
                    "required": False,
                    "type": "int"
                },
                "dns_cache_ttl": {
                    "required": False,
                    "type": "int"
                },
                "domain": {
                    "required": False,
                    "type": "str"
                },
                "ip6_primary": {
                    "required": False,
                    "type": "str"
                },
                "ip6_secondary": {
                    "required": False,
                    "type": "str"
                },
                "primary": {
                    "required": False,
                    "type": "str"
                },
                "secondary": {
                    "required": False,
                    "type": "str"
                },
                "source_ip": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #7
0
def main():
    mkeyname = 'category'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "system_object_tagging": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "address": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "mandatory", "optional"]
                },
                "category": {
                    "required": True,
                    "type": "str"
                },
                "color": {
                    "required": False,
                    "type": "int"
                },
                "device": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "mandatory", "optional"]
                },
                "interface": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "mandatory", "optional"]
                },
                "multiple": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "tags": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #8
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "state": {"required": False, "type": "str",
                  "choices": ["present", "absent"]},
        "authentication_scheme": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "state": {"required": False, "type": "str",
                          "choices": ["present", "absent"]},
                "domain_controller": {"required": False, "type": "str"},
                "fsso_agent_for_ntlm": {"required": False, "type": "str"},
                "fsso_guest": {"required": False, "type": "str",
                               "choices": ["enable",
                                           "disable"]},
                "kerberos_keytab": {"required": False, "type": "str"},
                "method": {"required": False, "type": "str",
                           "choices": ["ntlm",
                                       "basic",
                                       "digest",
                                       "form",
                                       "negotiate",
                                       "fsso",
                                       "rsso",
                                       "ssh-publickey"]},
                "name": {"required": True, "type": "str"},
                "negotiate_ntlm": {"required": False, "type": "str",
                                   "choices": ["enable",
                                               "disable"]},
                "require_tfa": {"required": False, "type": "str",
                                "choices": ["enable",
                                            "disable"]},
                "ssh_ca": {"required": False, "type": "str"},
                "user_database": {"required": False, "type": "list",
                                  "options": {
                                      "name": {"required": True, "type": "str"}
                                  }}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_authentication(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #9
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "report_theme": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "bullet_list_style": {
                    "required": False,
                    "type": "str"
                },
                "column_count": {
                    "required": False,
                    "type": "str",
                    "choices": ["1", "2", "3"]
                },
                "default_html_style": {
                    "required": False,
                    "type": "str"
                },
                "default_pdf_style": {
                    "required": False,
                    "type": "str"
                },
                "graph_chart_style": {
                    "required": False,
                    "type": "str"
                },
                "heading1_style": {
                    "required": False,
                    "type": "str"
                },
                "heading2_style": {
                    "required": False,
                    "type": "str"
                },
                "heading3_style": {
                    "required": False,
                    "type": "str"
                },
                "heading4_style": {
                    "required": False,
                    "type": "str"
                },
                "hline_style": {
                    "required": False,
                    "type": "str"
                },
                "image_style": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "normal_text_style": {
                    "required": False,
                    "type": "str"
                },
                "numbered_list_style": {
                    "required": False,
                    "type": "str"
                },
                "page_footer_style": {
                    "required": False,
                    "type": "str"
                },
                "page_header_style": {
                    "required": False,
                    "type": "str"
                },
                "page_orient": {
                    "required": False,
                    "type": "str",
                    "choices": ["portrait", "landscape"]
                },
                "page_style": {
                    "required": False,
                    "type": "str"
                },
                "report_subtitle_style": {
                    "required": False,
                    "type": "str"
                },
                "report_title_style": {
                    "required": False,
                    "type": "str"
                },
                "table_chart_caption_style": {
                    "required": False,
                    "type": "str"
                },
                "table_chart_even_row_style": {
                    "required": False,
                    "type": "str"
                },
                "table_chart_head_style": {
                    "required": False,
                    "type": "str"
                },
                "table_chart_odd_row_style": {
                    "required": False,
                    "type": "str"
                },
                "table_chart_style": {
                    "required": False,
                    "type": "str"
                },
                "toc_heading1_style": {
                    "required": False,
                    "type": "str"
                },
                "toc_heading2_style": {
                    "required": False,
                    "type": "str"
                },
                "toc_heading3_style": {
                    "required": False,
                    "type": "str"
                },
                "toc_heading4_style": {
                    "required": False,
                    "type": "str"
                },
                "toc_title_style": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_report(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'id'
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "state": {"required": False, "type": "str",
                  "choices": ["present", "absent"]},
        "firewall_internet_service": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "state": {"required": False, "type": "str",
                          "choices": ["present", "absent"]},
                "database": {"required": False, "type": "str",
                             "choices": ["isdb",
                                         "irdb"]},
                "direction": {"required": False, "type": "str",
                              "choices": ["src",
                                          "dst",
                                          "both"]},
                "entry": {"required": False, "type": "list",
                          "options": {
                              "id": {"required": True, "type": "int"},
                              "ip_number": {"required": False, "type": "int"},
                              "ip_range_number": {"required": False, "type": "int"},
                              "port": {"required": False, "type": "int"},
                              "protocol": {"required": False, "type": "int"}
                          }},
                "icon_id": {"required": False, "type": "int"},
                "id": {"required": True, "type": "int"},
                "name": {"required": False, "type": "str"},
                "offset": {"required": False, "type": "int"},
                "reputation": {"required": False, "type": "int"},
                "sld_id": {"required": False, "type": "int"}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_firewall(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'id'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "firewall_sniffer": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "anomaly": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "action": {
                            "required": False,
                            "type": "str",
                            "choices": ["pass", "block"]
                        },
                        "log": {
                            "required": False,
                            "type": "str",
                            "choices": ["enable", "disable"]
                        },
                        "name": {
                            "required": True,
                            "type": "str"
                        },
                        "quarantine": {
                            "required": False,
                            "type": "str",
                            "choices": ["none", "attacker"]
                        },
                        "quarantine_expiry": {
                            "required": False,
                            "type": "str"
                        },
                        "quarantine_log": {
                            "required": False,
                            "type": "str",
                            "choices": ["disable", "enable"]
                        },
                        "status": {
                            "required": False,
                            "type": "str",
                            "choices": ["disable", "enable"]
                        },
                        "threshold": {
                            "required": False,
                            "type": "int"
                        },
                        "threshold(default)": {
                            "required": False,
                            "type": "int"
                        }
                    }
                },
                "application_list": {
                    "required": False,
                    "type": "str"
                },
                "application_list_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "av_profile": {
                    "required": False,
                    "type": "str"
                },
                "av_profile_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "dlp_sensor": {
                    "required": False,
                    "type": "str"
                },
                "dlp_sensor_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "dsri": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "host": {
                    "required": False,
                    "type": "str"
                },
                "id": {
                    "required": True,
                    "type": "int"
                },
                "interface": {
                    "required": False,
                    "type": "str"
                },
                "ips_dos_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "ips_sensor": {
                    "required": False,
                    "type": "str"
                },
                "ips_sensor_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "ipv6": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "logtraffic": {
                    "required": False,
                    "type": "str",
                    "choices": ["all", "utm", "disable"]
                },
                "max_packet_count": {
                    "required": False,
                    "type": "int"
                },
                "non_ip": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "port": {
                    "required": False,
                    "type": "str"
                },
                "protocol": {
                    "required": False,
                    "type": "str"
                },
                "scan_botnet_connections": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "block", "monitor"]
                },
                "spamfilter_profile": {
                    "required": False,
                    "type": "str"
                },
                "spamfilter_profile_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "vlan": {
                    "required": False,
                    "type": "str"
                },
                "webfilter_profile": {
                    "required": False,
                    "type": "str"
                },
                "webfilter_profile_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_firewall(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = None
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "log_syslogd_override_filter": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "anomaly": {"required": False, "type": "str",
                            "choices": ["enable",
                                        "disable"]},
                "dns": {"required": False, "type": "str",
                        "choices": ["enable",
                                    "disable"]},
                "filter": {"required": False, "type": "str"},
                "filter_type": {"required": False, "type": "str",
                                "choices": ["include",
                                            "exclude"]},
                "forward_traffic": {"required": False, "type": "str",
                                    "choices": ["enable",
                                                "disable"]},
                "gtp": {"required": False, "type": "str",
                        "choices": ["enable",
                                    "disable"]},
                "local_traffic": {"required": False, "type": "str",
                                  "choices": ["enable",
                                              "disable"]},
                "multicast_traffic": {"required": False, "type": "str",
                                      "choices": ["enable",
                                                  "disable"]},
                "netscan_discovery": {"required": False, "type": "str"},
                "netscan_vulnerability": {"required": False, "type": "str"},
                "severity": {"required": False, "type": "str",
                             "choices": ["emergency",
                                         "alert",
                                         "critical",
                                         "error",
                                         "warning",
                                         "notification",
                                         "information",
                                         "debug"]},
                "sniffer_traffic": {"required": False, "type": "str",
                                    "choices": ["enable",
                                                "disable"]},
                "ssh": {"required": False, "type": "str",
                        "choices": ["enable",
                                    "disable"]},
                "voip": {"required": False, "type": "str",
                         "choices": ["enable",
                                     "disable"]}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_log_syslogd(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #13
0
def main():
    mkeyname = 'ddnsid'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "system_ddns": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "bound_ip": {
                    "required": False,
                    "type": "str"
                },
                "clear_text": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "ddns_auth": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "tsig"]
                },
                "ddns_domain": {
                    "required": False,
                    "type": "str"
                },
                "ddns_key": {
                    "required": False,
                    "type": "str"
                },
                "ddns_keyname": {
                    "required": False,
                    "type": "str"
                },
                "ddns_password": {
                    "required": False,
                    "type": "str"
                },
                "ddns_server": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices": [
                        "dyndns.org", "dyns.net", "tzo.com", "vavic.com",
                        "dipdns.net", "now.net.cn", "dhs.org", "easydns.com",
                        "genericDDNS", "FortiGuardDDNS", "noip.com"
                    ]
                },
                "ddns_server_ip": {
                    "required": False,
                    "type": "str"
                },
                "ddns_sn": {
                    "required": False,
                    "type": "str"
                },
                "ddns_ttl": {
                    "required": False,
                    "type": "int"
                },
                "ddns_username": {
                    "required": False,
                    "type": "str"
                },
                "ddns_zone": {
                    "required": False,
                    "type": "str"
                },
                "ddnsid": {
                    "required": True,
                    "type": "int"
                },
                "monitor_interface": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "interface_name": {
                            "required": False,
                            "type": "str"
                        }
                    }
                },
                "ssl_certificate": {
                    "required": False,
                    "type": "str"
                },
                "update_interval": {
                    "required": False,
                    "type": "int"
                },
                "use_public_ip": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #14
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "user_tacacsplus": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "authen_type": {
                    "required": False,
                    "type": "str",
                    "choices": ["mschap", "chap", "pap", "ascii", "auto"]
                },
                "authorization": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "key": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "port": {
                    "required": False,
                    "type": "int"
                },
                "secondary_key": {
                    "required": False,
                    "type": "str"
                },
                "secondary_server": {
                    "required": False,
                    "type": "str"
                },
                "server": {
                    "required": False,
                    "type": "str"
                },
                "source_ip": {
                    "required": False,
                    "type": "str"
                },
                "tertiary_key": {
                    "required": False,
                    "type": "str"
                },
                "tertiary_server": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #15
0
def main():
    mkeyname = None
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "router_setting": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "bgp_debug_flags": {"required": False, "type": "str"},
                "hostname": {"required": False, "type": "str"},
                "igmp_debug_flags": {"required": False, "type": "str"},
                "imi_debug_flags": {"required": False, "type": "str"},
                "isis_debug_flags": {"required": False, "type": "str"},
                "ospf6_debug_events_flags": {"required": False, "type": "str"},
                "ospf6_debug_ifsm_flags": {"required": False, "type": "str"},
                "ospf6_debug_lsa_flags": {"required": False, "type": "str"},
                "ospf6_debug_nfsm_flags": {"required": False, "type": "str"},
                "ospf6_debug_nsm_flags": {"required": False, "type": "str"},
                "ospf6_debug_packet_flags": {"required": False, "type": "str"},
                "ospf6_debug_route_flags": {"required": False, "type": "str"},
                "ospf_debug_events_flags": {"required": False, "type": "str"},
                "ospf_debug_ifsm_flags": {"required": False, "type": "str"},
                "ospf_debug_lsa_flags": {"required": False, "type": "str"},
                "ospf_debug_nfsm_flags": {"required": False, "type": "str"},
                "ospf_debug_nsm_flags": {"required": False, "type": "str"},
                "ospf_debug_packet_flags": {"required": False, "type": "str"},
                "ospf_debug_route_flags": {"required": False, "type": "str"},
                "pimdm_debug_flags": {"required": False, "type": "str"},
                "pimsm_debug_joinprune_flags": {"required": False, "type": "str"},
                "pimsm_debug_simple_flags": {"required": False, "type": "str"},
                "pimsm_debug_timer_flags": {"required": False, "type": "str"},
                "rip_debug_flags": {"required": False, "type": "str"},
                "ripng_debug_flags": {"required": False, "type": "str"},
                "show_filter": {"required": False, "type": "str"}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_router(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'policyid'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "firewall_local_in_policy": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "action": {
                    "required": False,
                    "type": "str",
                    "choices": ["accept", "deny"]
                },
                "comments": {
                    "required": False,
                    "type": "str"
                },
                "dstaddr": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "ha_mgmt_intf_only": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "intf": {
                    "required": False,
                    "type": "str"
                },
                "policyid": {
                    "required": True,
                    "type": "int"
                },
                "schedule": {
                    "required": False,
                    "type": "str"
                },
                "service": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "srcaddr": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_firewall(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #17
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "wireless_controller_hotspot20_h2qp_wan_metric": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "downlink_load": {
                    "required": False,
                    "type": "int"
                },
                "downlink_speed": {
                    "required": False,
                    "type": "int"
                },
                "link_at_capacity": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "link_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["up", "down", "in-test"]
                },
                "load_measurement_duration": {
                    "required": False,
                    "type": "int"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "symmetric_wan_link": {
                    "required": False,
                    "type": "str",
                    "choices": ["symmetric", "asymmetric"]
                },
                "uplink_load": {
                    "required": False,
                    "type": "int"
                },
                "uplink_speed": {
                    "required": False,
                    "type": "int"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_wireless_controller_hotspot20(
            module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #18
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "user_ldap": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "account_key_filter": {
                    "required": False,
                    "type": "str"
                },
                "account_key_processing": {
                    "required": False,
                    "type": "str",
                    "choices": ["same", "strip"]
                },
                "ca_cert": {
                    "required": False,
                    "type": "str"
                },
                "cnid": {
                    "required": False,
                    "type": "str"
                },
                "dn": {
                    "required": False,
                    "type": "str"
                },
                "group_filter": {
                    "required": False,
                    "type": "str"
                },
                "group_member_check": {
                    "required": False,
                    "type": "str",
                    "choices":
                    ["user-attr", "group-object", "posix-group-object"]
                },
                "group_object_filter": {
                    "required": False,
                    "type": "str"
                },
                "group_search_base": {
                    "required": False,
                    "type": "str"
                },
                "member_attr": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "obtain_user_info": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "password": {
                    "required": False,
                    "type": "str"
                },
                "password_expiry_warning": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "password_renewal": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "port": {
                    "required": False,
                    "type": "int"
                },
                "search_type": {
                    "required": False,
                    "type": "str",
                    "choices": ["recursive"]
                },
                "secondary_server": {
                    "required": False,
                    "type": "str"
                },
                "secure": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "starttls", "ldaps"]
                },
                "server": {
                    "required": False,
                    "type": "str"
                },
                "server_identity_check": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "source_ip": {
                    "required": False,
                    "type": "str"
                },
                "ssl_min_proto_version": {
                    "required": False,
                    "type": "str",
                    "choices":
                    ["default", "SSLv3", "TLSv1", "TLSv1-1", "TLSv1-2"]
                },
                "tertiary_server": {
                    "required": False,
                    "type": "str"
                },
                "type": {
                    "required": False,
                    "type": "str",
                    "choices": ["simple", "anonymous", "regular"]
                },
                "user_info_exchange_server": {
                    "required": False,
                    "type": "str"
                },
                "username": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #19
0
def main():
    mkeyname = 'serial-number'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "user_fortitoken": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "activation_code": {
                    "required": False,
                    "type": "str"
                },
                "activation_expire": {
                    "required": False,
                    "type": "int"
                },
                "comments": {
                    "required": False,
                    "type": "str"
                },
                "license": {
                    "required": False,
                    "type": "str"
                },
                "os_ver": {
                    "required": False,
                    "type": "str"
                },
                "reg_id": {
                    "required": False,
                    "type": "str"
                },
                "seed": {
                    "required": False,
                    "type": "str"
                },
                "serial_number": {
                    "required": False,
                    "type": "str"
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["active", "lock"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'msg-type'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "system_replacemsg_utm": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "buffer": {
                    "required": False,
                    "type": "str"
                },
                "format": {
                    "required": False,
                    "type": "str",
                    "choices": ["none", "text", "html", "wml"]
                },
                "header": {
                    "required": False,
                    "type": "str",
                    "choices": ["none", "http", "8bit"]
                },
                "msg_type": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system_replacemsg(
            module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "system_gre_tunnel": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "checksum_reception": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "checksum_transmission": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "dscp_copying": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "interface": {
                    "required": False,
                    "type": "str"
                },
                "ip_version": {
                    "required": False,
                    "type": "str",
                    "choices": ["4", "6"]
                },
                "keepalive_failtimes": {
                    "required": False,
                    "type": "int"
                },
                "keepalive_interval": {
                    "required": False,
                    "type": "int"
                },
                "key_inbound": {
                    "required": False,
                    "type": "int"
                },
                "key_outbound": {
                    "required": False,
                    "type": "int"
                },
                "local_gw": {
                    "required": False,
                    "type": "str"
                },
                "local_gw6": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "remote_gw": {
                    "required": False,
                    "type": "str"
                },
                "remote_gw6": {
                    "required": False,
                    "type": "str"
                },
                "sequence_number_reception": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "sequence_number_transmission": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #22
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "system_autoupdate_schedule": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "day": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices": [
                        "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
                        "Friday", "Saturday"
                    ]
                },
                "frequency": {
                    "required": False,
                    "type": "str",
                    "choices": ["every", "daily", "weekly"]
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "time": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system_autoupdate(
            module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #23
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "log_fortianalyzer3_setting": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "__change_ip": {
                    "required": False,
                    "type": "int"
                },
                "access_config": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "certificate": {
                    "required": False,
                    "type": "str"
                },
                "certificate_verification": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "conn_timeout": {
                    "required": False,
                    "type": "int"
                },
                "enc_algorithm": {
                    "required": False,
                    "type": "str",
                    "choices": ["high-medium", "high", "low"]
                },
                "faz_type": {
                    "required": False,
                    "type": "int"
                },
                "hmac_algorithm": {
                    "required": False,
                    "type": "str",
                    "choices": ["sha256", "sha1"]
                },
                "ips_archive": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "mgmt_name": {
                    "required": False,
                    "type": "str"
                },
                "monitor_failure_retry_period": {
                    "required": False,
                    "type": "int"
                },
                "monitor_keepalive_period": {
                    "required": False,
                    "type": "int"
                },
                "reliable": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "serial": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "server": {
                    "required": False,
                    "type": "str"
                },
                "source_ip": {
                    "required": False,
                    "type": "str"
                },
                "ssl_min_proto_version": {
                    "required": False,
                    "type": "str",
                    "choices":
                    ["default", "SSLv3", "TLSv1", "TLSv1-1", "TLSv1-2"]
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "upload_day": {
                    "required": False,
                    "type": "str"
                },
                "upload_interval": {
                    "required": False,
                    "type": "str",
                    "choices": ["daily", "weekly", "monthly"]
                },
                "upload_option": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices":
                    ["store-and-upload", "realtime", "1-minute", "5-minute"]
                },
                "upload_time": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_log_fortianalyzer3(
            module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'seq-num'
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "state": {"required": False, "type": "str",
                  "choices": ["present", "absent"]},
        "router_static": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "state": {"required": False, "type": "str",
                          "choices": ["present", "absent"]},
                "bfd": {"required": False, "type": "str",
                        "choices": ["enable",
                                    "disable"]},
                "blackhole": {"required": False, "type": "str",
                              "choices": ["enable",
                                          "disable"]},
                "comment": {"required": False, "type": "str"},
                "device": {"required": False, "type": "str"},
                "distance": {"required": False, "type": "int"},
                "dst": {"required": False, "type": "str"},
                "dstaddr": {"required": False, "type": "str"},
                "dynamic_gateway": {"required": False, "type": "str",
                                    "choices": ["enable",
                                                "disable"]},
                "gateway": {"required": False, "type": "str"},
                "internet_service": {"required": False, "type": "int"},
                "internet_service_custom": {"required": False, "type": "str"},
                "link_monitor_exempt": {"required": False, "type": "str",
                                        "choices": ["enable",
                                                    "disable"]},
                "priority": {"required": False, "type": "int"},
                "seq_num": {"required": False, "type": "int"},
                "src": {"required": False, "type": "str"},
                "status": {"required": False, "type": "str",
                           "choices": ["enable",
                                       "disable"]},
                "virtual_wan_link": {"required": False, "type": "str",
                                     "choices": ["enable",
                                                 "disable"]},
                "vrf": {"required": False, "type": "int"},
                "weight": {"required": False, "type": "int"}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_router(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #25
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "system_password_policy": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "apply_to": {
                    "required": False,
                    "type": "str",
                    "choices": ["admin-password", "ipsec-preshared-key"]
                },
                "change_4_characters": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "expire_day": {
                    "required": False,
                    "type": "int"
                },
                "expire_status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "min_lower_case_letter": {
                    "required": False,
                    "type": "int"
                },
                "min_non_alphanumeric": {
                    "required": False,
                    "type": "int"
                },
                "min_number": {
                    "required": False,
                    "type": "int"
                },
                "min_upper_case_letter": {
                    "required": False,
                    "type": "int"
                },
                "minimum_length": {
                    "required": False,
                    "type": "int"
                },
                "reuse_password": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_system(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "vpn_ipsec_manualkey": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "authentication": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices":
                    ["null", "md5", "sha1", "sha256", "sha384", "sha512"]
                },
                "authkey": {
                    "required": False,
                    "type": "str"
                },
                "enckey": {
                    "required": False,
                    "type": "str"
                },
                "encryption": {
                    "required":
                    False,
                    "type":
                    "str",
                    "choices": [
                        "null", "des", "3des", "aes128", "aes192", "aes256",
                        "aria128", "aria192", "aria256", "seed"
                    ]
                },
                "interface": {
                    "required": False,
                    "type": "str"
                },
                "local_gw": {
                    "required": False,
                    "type": "str"
                },
                "localspi": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "npu_offload": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "remote_gw": {
                    "required": False,
                    "type": "str"
                },
                "remotespi": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_vpn_ipsec(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #27
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {"required": False, "type": "str", "no_log": True},
        "vdom": {"required": False, "type": "str", "default": "root"},
        "state": {"required": True, "type": "str",
                  "choices": ["present", "absent"]},
        "user_group": {
            "required": False, "type": "dict", "default": None,
            "options": {
                "auth_concurrent_override": {"required": False, "type": "str",
                                             "choices": ["enable",
                                                         "disable"]},
                "auth_concurrent_value": {"required": False, "type": "int"},
                "authtimeout": {"required": False, "type": "int"},
                "company": {"required": False, "type": "str",
                            "choices": ["optional",
                                        "mandatory",
                                        "disabled"]},
                "email": {"required": False, "type": "str",
                          "choices": ["disable",
                                      "enable"]},
                "expire": {"required": False, "type": "int"},
                "expire_type": {"required": False, "type": "str",
                                "choices": ["immediately",
                                            "first-successful-login"]},
                "group_type": {"required": False, "type": "str",
                               "choices": ["firewall",
                                           "fsso-service",
                                           "rsso",
                                           "guest"]},
                "guest": {"required": False, "type": "list",
                          "options": {
                              "comment": {"required": False, "type": "str"},
                              "company": {"required": False, "type": "str"},
                              "email": {"required": False, "type": "str"},
                              "expiration": {"required": False, "type": "str"},
                              "mobile_phone": {"required": False, "type": "str"},
                              "name": {"required": False, "type": "str"},
                              "password": {"required": False, "type": "str"},
                              "sponsor": {"required": False, "type": "str"},
                              "user_id": {"required": False, "type": "str"}
                          }},
                "http_digest_realm": {"required": False, "type": "str"},
                "id": {"required": False, "type": "int"},
                "match": {"required": False, "type": "list",
                          "options": {
                              "group_name": {"required": False, "type": "str"},
                              "id": {"required": True, "type": "int"},
                              "server_name": {"required": False, "type": "str"}
                          }},
                "max_accounts": {"required": False, "type": "int"},
                "member": {"required": False, "type": "list",
                           "options": {
                               "name": {"required": True, "type": "str"}
                           }},
                "mobile_phone": {"required": False, "type": "str",
                                 "choices": ["disable",
                                             "enable"]},
                "multiple_guest_add": {"required": False, "type": "str",
                                       "choices": ["disable",
                                                   "enable"]},
                "name": {"required": True, "type": "str"},
                "password": {"required": False, "type": "str",
                             "choices": ["auto-generate",
                                         "specify",
                                         "disable"]},
                "sms_custom_server": {"required": False, "type": "str"},
                "sms_server": {"required": False, "type": "str",
                               "choices": ["fortiguard",
                                           "custom"]},
                "sponsor": {"required": False, "type": "str",
                            "choices": ["optional",
                                        "mandatory",
                                        "disabled"]},
                "sso_attribute_value": {"required": False, "type": "str"},
                "user_id": {"required": False, "type": "str",
                            "choices": ["email",
                                        "auto-generate",
                                        "specify"]},
                "user_name": {"required": False, "type": "str",
                              "choices": ["disable",
                                          "enable"]}

            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields,
                           supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token', module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn("Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv")

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed, version_check_warning=versions_check_result, meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo", version_check_warning=versions_check_result, meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #28
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": False,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "dnsfilter_profile": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "state": {
                    "required": False,
                    "type": "str",
                    "choices": ["present", "absent"]
                },
                "block_action": {
                    "required": False,
                    "type": "str",
                    "choices": ["block", "redirect"]
                },
                "block_botnet": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "comment": {
                    "required": False,
                    "type": "str"
                },
                "domain_filter": {
                    "required": False,
                    "type": "dict",
                    "options": {
                        "domain_filter_table": {
                            "required": False,
                            "type": "int"
                        }
                    }
                },
                "external_ip_blocklist": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "name": {
                            "required": True,
                            "type": "str"
                        }
                    }
                },
                "ftgd_dns": {
                    "required": False,
                    "type": "dict",
                    "options": {
                        "filters": {
                            "required": False,
                            "type": "list",
                            "options": {
                                "action": {
                                    "required": False,
                                    "type": "str",
                                    "choices": ["block", "monitor"]
                                },
                                "category": {
                                    "required": False,
                                    "type": "int"
                                },
                                "id": {
                                    "required": True,
                                    "type": "int"
                                },
                                "log": {
                                    "required": False,
                                    "type": "str",
                                    "choices": ["enable", "disable"]
                                }
                            }
                        },
                        "options": {
                            "required": False,
                            "type": "str",
                            "choices": ["error-allow", "ftgd-disable"]
                        }
                    }
                },
                "log_all_domain": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "redirect_portal": {
                    "required": False,
                    "type": "str"
                },
                "safe_search": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "enable"]
                },
                "sdns_domain_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "sdns_ftgd_err_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "youtube_restrict": {
                    "required": False,
                    "type": "str",
                    "choices": ["strict", "moderate"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_dnsfilter(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #29
0
def main():
    mkeyname = None
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "log_setting": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "brief_traffic_format": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "custom_log_fields": {
                    "required": False,
                    "type": "list",
                    "options": {
                        "field_id": {
                            "required": False,
                            "type": "str"
                        }
                    }
                },
                "daemon_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "expolicy_implicit_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "fwpolicy_implicit_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "fwpolicy6_implicit_log": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "local_in_allow": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "local_in_deny_broadcast": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "local_in_deny_unicast": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "local_out": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "log_invalid_packet": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "log_policy_comment": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "log_policy_name": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "log_user_in_upper": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "neighbor_event": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "resolve_ip": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "resolve_port": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "user_anonymize": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_log(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)
Example #30
0
def main():
    mkeyname = 'name'
    fields = {
        "access_token": {
            "required": False,
            "type": "str",
            "no_log": True
        },
        "vdom": {
            "required": False,
            "type": "str",
            "default": "root"
        },
        "state": {
            "required": True,
            "type": "str",
            "choices": ["present", "absent"]
        },
        "user_local": {
            "required": False,
            "type": "dict",
            "default": None,
            "options": {
                "auth_concurrent_override": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "auth_concurrent_value": {
                    "required": False,
                    "type": "int"
                },
                "authtimeout": {
                    "required": False,
                    "type": "int"
                },
                "email_to": {
                    "required": False,
                    "type": "str"
                },
                "fortitoken": {
                    "required": False,
                    "type": "str"
                },
                "id": {
                    "required": False,
                    "type": "int"
                },
                "ldap_server": {
                    "required": False,
                    "type": "str"
                },
                "name": {
                    "required": True,
                    "type": "str"
                },
                "passwd": {
                    "required": False,
                    "type": "str"
                },
                "passwd_policy": {
                    "required": False,
                    "type": "str"
                },
                "passwd_time": {
                    "required": False,
                    "type": "str"
                },
                "ppk_secret": {
                    "required": False,
                    "type": "str"
                },
                "radius_server": {
                    "required": False,
                    "type": "str"
                },
                "sms_custom_server": {
                    "required": False,
                    "type": "str"
                },
                "sms_phone": {
                    "required": False,
                    "type": "str"
                },
                "sms_server": {
                    "required": False,
                    "type": "str",
                    "choices": ["fortiguard", "custom"]
                },
                "status": {
                    "required": False,
                    "type": "str",
                    "choices": ["enable", "disable"]
                },
                "tacacs+_server": {
                    "required": False,
                    "type": "str"
                },
                "two_factor": {
                    "required": False,
                    "type": "str",
                    "choices": ["disable", "fortitoken", "email", "sms"]
                },
                "type": {
                    "required": False,
                    "type": "str",
                    "choices": ["password", "radius", "tacacs+", "ldap"]
                },
                "workstation": {
                    "required": False,
                    "type": "str"
                }
            }
        }
    }

    check_legacy_fortiosapi()
    module = AnsibleModule(argument_spec=fields, supports_check_mode=False)

    versions_check_result = None
    if module._socket_path:
        connection = Connection(module._socket_path)
        if 'access_token' in module.params:
            connection.set_option('access_token',
                                  module.params['access_token'])

        fos = FortiOSHandler(connection, module, mkeyname)

        is_error, has_changed, result = fortios_user(module.params, fos)
        versions_check_result = connection.get_system_version()
    else:
        module.fail_json(**FAIL_SOCKET_MSG)

    if versions_check_result and versions_check_result['matched'] is False:
        module.warn(
            "Ansible has detected version mismatch between FortOS system and galaxy, see more details by specifying option -vvv"
        )

    if not is_error:
        if versions_check_result and versions_check_result['matched'] is False:
            module.exit_json(changed=has_changed,
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.exit_json(changed=has_changed, meta=result)
    else:
        if versions_check_result and versions_check_result['matched'] is False:
            module.fail_json(msg="Error in repo",
                             version_check_warning=versions_check_result,
                             meta=result)
        else:
            module.fail_json(msg="Error in repo", meta=result)