From b3238ff47b72f3f6e602d35c773364b1a7ddd596 Mon Sep 17 00:00:00 2001 From: Johanna Dorothea Reichmann Date: Sat, 18 Jun 2022 11:41:59 +0200 Subject: [PATCH] chore(realms): refactor modules --- plugins/module_utils/common.py | 25 +++++++++++++++++++ ...mox_api.py => proxmox_datacenter_realm.py} | 23 +---------------- plugins/modules/realm.py | 8 +++--- plugins/modules/realm_info.py | 9 ++----- 4 files changed, 33 insertions(+), 32 deletions(-) create mode 100644 plugins/module_utils/common.py rename plugins/module_utils/{proxmox_api.py => proxmox_datacenter_realm.py} (74%) diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py new file mode 100644 index 0000000..49a2279 --- /dev/null +++ b/plugins/module_utils/common.py @@ -0,0 +1,25 @@ +from dataclasses import dataclass + +import requests + +API_BASE_PATH: str = "/api2/json" + + +@dataclass() +class ProxmoxAuthInfo: + instance_url: str + token_id: str + secret: str + verify_cert: bool = True + + +def _get_token_from_auth_info(auth_info: ProxmoxAuthInfo) -> str: + return f"PVEAPIToken={auth_info.token_id}={auth_info.secret}" + + +def _proxmox_request(method: str, endpoint: str, auth_info: ProxmoxAuthInfo, **params): + return requests.request(method, + f"{auth_info.instance_url}{API_BASE_PATH}{endpoint}", + headers={'Authorization': _get_token_from_auth_info(auth_info)}, + verify=auth_info.verify_cert, + **params) diff --git a/plugins/module_utils/proxmox_api.py b/plugins/module_utils/proxmox_datacenter_realm.py similarity index 74% rename from plugins/module_utils/proxmox_api.py rename to plugins/module_utils/proxmox_datacenter_realm.py index 089e867..3bb19f0 100644 --- a/plugins/module_utils/proxmox_api.py +++ b/plugins/module_utils/proxmox_datacenter_realm.py @@ -1,17 +1,7 @@ from dataclasses import dataclass from typing import List, Tuple -import requests - -API_BASE_PATH: str = "/api2/json" - - -@dataclass() -class ProxmoxAuthInfo: - instance_url: str - token_id: str - secret: str - verify_cert: bool = True +from ansible_collections.finallycoffee.proxmox.plugins.module_utils.common import _proxmox_request, ProxmoxAuthInfo @dataclass(frozen=True) @@ -63,14 +53,3 @@ def set_realm_data(auth_info: ProxmoxAuthInfo, realm: str, config: dict[str, str new_realm_data = None return existing_realm_data, new_realm_data - -def _get_token_from_auth_info(auth_info: ProxmoxAuthInfo) -> str: - return f"PVEAPIToken={auth_info.token_id}={auth_info.secret}" - - -def _proxmox_request(method: str, endpoint: str, auth_info: ProxmoxAuthInfo, **params): - return requests.request(method, - f"{auth_info.instance_url}{API_BASE_PATH}{endpoint}", - headers={'Authorization': _get_token_from_auth_info(auth_info)}, - verify=auth_info.verify_cert, - **params) diff --git a/plugins/modules/realm.py b/plugins/modules/realm.py index 47c8d9f..8b0cbb5 100644 --- a/plugins/modules/realm.py +++ b/plugins/modules/realm.py @@ -5,15 +5,17 @@ __metaclass__ = type -import dataclasses -import json import traceback from ansible.module_utils.basic import AnsibleModule +from ansible_collections.finallycoffee.proxmox.plugins.module_utils.common import * +from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_datacenter_realm import * + + LIB_IMP_ERR = None try: - from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_api import * + from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_datacenter_realm import set_realm_data HAS_LIB = True except: HAS_LIB = False diff --git a/plugins/modules/realm_info.py b/plugins/modules/realm_info.py index e426208..955d449 100644 --- a/plugins/modules/realm_info.py +++ b/plugins/modules/realm_info.py @@ -10,13 +10,8 @@ import traceback from ansible.module_utils.basic import AnsibleModule -LIB_IMP_ERR = None -try: - from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_api import * - HAS_LIB = True -except: - HAS_LIB = False - LIB_IMP_ERR = traceback.format_exc() +from ansible_collections.finallycoffee.proxmox.plugins.module_utils.common import * +from ansible_collections.finallycoffee.proxmox.plugins.module_utils.proxmox_datacenter_realm import * DOCUMENTATION = r'''