1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/plugins/modules/utm_proxy_location.py

227 lines
6.7 KiB
Python
Raw Normal View History

2020-03-09 10:11:07 +01:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
2020-03-09 10:11:07 +01:00
# Copyright (c) 2018, Johannes Brunswicker <johannes.brunswicker@gmail.com>
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
2020-03-09 10:11:07 +01:00
from __future__ import absolute_import, division, print_function
__metaclass__ = type
DOCUMENTATION = '''
---
module: utm_proxy_location
author:
- Johannes Brunswicker (@MatrixCrawler)
short_description: Create, update or destroy reverse_proxy location entry in Sophos UTM
2020-03-09 10:11:07 +01:00
description:
- Create, update or destroy a reverse_proxy location entry in SOPHOS UTM.
- This module needs to have the REST Ability of the UTM to be activated.
attributes:
check_mode:
support: none
diff_mode:
support: none
2020-03-09 10:11:07 +01:00
options:
name:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The name of the object. Will be used to identify the entry
required: true
access_control:
description:
- whether to activate the access control for the location
type: str
default: '0'
choices:
- '0'
- '1'
allowed_networks:
description:
- A list of allowed networks
type: list
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
elements: str
2022-08-04 20:22:16 +02:00
default:
- REF_NetworkAny
2020-03-09 10:11:07 +01:00
auth_profile:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The reference name of the auth profile
2022-11-01 19:25:51 +01:00
default: ''
2020-03-09 10:11:07 +01:00
backend:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: list
elements: str
2020-03-09 10:11:07 +01:00
description:
- A list of backends that are connected with this location declaration
default: []
be_path:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The path of the backend
2022-11-01 19:25:51 +01:00
default: ''
2020-03-09 10:11:07 +01:00
comment:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The optional comment string
2022-11-01 19:25:51 +01:00
default: ''
2020-03-09 10:11:07 +01:00
denied_networks:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: list
elements: str
2020-03-09 10:11:07 +01:00
description:
- A list of denied network references
default: []
hot_standby:
description:
- Activate hot standby mode
type: bool
2022-09-06 20:42:17 +02:00
default: false
2020-03-09 10:11:07 +01:00
path:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The path of the location
default: "/"
status:
description:
- Whether the location is active or not
type: bool
2022-09-06 20:42:17 +02:00
default: true
2020-03-09 10:11:07 +01:00
stickysession_id:
Tidy up validate-modules ignores for modules: web_infrastructure/sophos_utm (#1351) * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_dns_host.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_network_interface_address.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_auth_profile.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_exception.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py * fixed validation-modules for plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py * Enabling validation-modules for web_infrastructure/sophos_utm modules * Rolled back utm_network_interface_address.py for 2.9 sake
2020-11-22 12:17:46 +01:00
type: str
2020-03-09 10:11:07 +01:00
description:
- The stickysession id
default: ROUTEID
stickysession_status:
description:
- Enable the stickysession
type: bool
2022-09-06 20:42:17 +02:00
default: false
2020-03-09 10:11:07 +01:00
websocket_passthrough:
description:
- Enable the websocket passthrough
type: bool
2022-09-06 20:42:17 +02:00
default: false
2020-03-09 10:11:07 +01:00
extends_documentation_fragment:
- community.general.utm
- community.general.attributes
2020-03-09 10:11:07 +01:00
'''
EXAMPLES = """
- name: Create UTM proxy_location
utm_proxy_backend:
utm_host: sophos.host.name
utm_token: abcdefghijklmno1234
name: TestLocationEntry
backend: REF_OBJECT_STRING
state: present
- name: Remove UTM proxy_location
utm_proxy_backend:
utm_host: sophos.host.name
utm_token: abcdefghijklmno1234
name: TestLocationEntry
state: absent
"""
RETURN = """
result:
description: The utm object that was created
returned: success
type: complex
contains:
_ref:
description: The reference name of the object
type: str
_locked:
description: Whether or not the object is currently locked
type: bool
_type:
description: The type of the object
type: str
name:
description: The name of the object
type: str
access_control:
description: Whether to use access control state
type: str
allowed_networks:
description: List of allowed network reference names
type: list
auth_profile:
description: The auth profile reference name
type: str
backend:
description: The backend reference name
type: str
be_path:
description: The backend path
type: str
comment:
description: The comment string
type: str
denied_networks:
description: The list of the denied network names
type: list
hot_standby:
description: Use hot standby
2020-03-09 10:11:07 +01:00
type: bool
path:
description: Path name
type: str
status:
description: Whether the object is active or not
type: bool
stickysession_id:
description: The identifier of the stickysession
type: str
stickysession_status:
description: Whether to use stickysession or not
type: bool
websocket_passthrough:
description: Whether websocket passthrough will be used or not
type: bool
"""
from ansible_collections.community.general.plugins.module_utils.utm_utils import UTM, UTMModule
from ansible.module_utils.common.text.converters import to_native
2020-03-09 10:11:07 +01:00
def main():
endpoint = "reverse_proxy/location"
key_to_check_for_changes = ["access_control", "allowed_networks", "auth_profile", "backend", "be_path", "comment",
"denied_networks", "hot_standby", "path", "status", "stickysession_id",
"stickysession_status", "websocket_passthrough"]
module = UTMModule(
argument_spec=dict(
name=dict(type='str', required=True),
access_control=dict(type='str', required=False, default="0", choices=['0', '1']),
allowed_networks=dict(type='list', elements='str', required=False, default=['REF_NetworkAny']),
auth_profile=dict(type='str', required=False, default=""),
backend=dict(type='list', elements='str', required=False, default=[]),
be_path=dict(type='str', required=False, default=""),
comment=dict(type='str', required=False, default=""),
denied_networks=dict(type='list', elements='str', required=False, default=[]),
hot_standby=dict(type='bool', required=False, default=False),
path=dict(type='str', required=False, default="/"),
status=dict(type='bool', required=False, default=True),
stickysession_id=dict(type='str', required=False, default='ROUTEID'),
stickysession_status=dict(type='bool', required=False, default=False),
websocket_passthrough=dict(type='bool', required=False, default=False),
)
)
try:
UTM(module, endpoint, key_to_check_for_changes).execute()
except Exception as e:
module.fail_json(msg=to_native(e))
if __name__ == '__main__':
main()