Add basic typing for module_utils.

This commit is contained in:
Felix Fontein
2025-11-26 22:37:16 +01:00
parent fb2f34ba85
commit e74033eac1
48 changed files with 209 additions and 142 deletions

View File

@@ -9,6 +9,7 @@ import atexit
import time
import re
import traceback
import typing as t
XENAPI_IMP_ERR = None
try:
@@ -19,7 +20,7 @@ except ImportError:
HAS_XENAPI = False
XENAPI_IMP_ERR = traceback.format_exc()
from ansible.module_utils.basic import env_fallback, missing_required_lib
from ansible.module_utils.basic import env_fallback, missing_required_lib, AnsibleModule
from ansible.module_utils.ansible_release import __version__ as ANSIBLE_VERSION
@@ -239,7 +240,7 @@ def is_valid_ip6_prefix(ip6_prefix):
return not (ip6_prefix_int < 0 or ip6_prefix_int > 128)
def get_object_ref(module, name, uuid=None, obj_type="VM", fail=True, msg_prefix=""):
def get_object_ref(module: AnsibleModule, name, uuid=None, obj_type="VM", fail=True, msg_prefix=""):
"""Finds and returns a reference to arbitrary XAPI object.
An object is searched by using either name (name_label) or UUID
@@ -305,7 +306,7 @@ def get_object_ref(module, name, uuid=None, obj_type="VM", fail=True, msg_prefix
return obj_ref
def gather_vm_params(module, vm_ref):
def gather_vm_params(module: AnsibleModule, vm_ref):
"""Gathers all VM parameters available in XAPI database.
Args:
@@ -395,7 +396,7 @@ def gather_vm_params(module, vm_ref):
return vm_params
def gather_vm_facts(module, vm_params):
def gather_vm_facts(module: AnsibleModule, vm_params):
"""Gathers VM facts.
Args:
@@ -502,7 +503,7 @@ def gather_vm_facts(module, vm_params):
return vm_facts
def set_vm_power_state(module, vm_ref, power_state, timeout=300):
def set_vm_power_state(module: AnsibleModule, vm_ref, power_state, timeout=300):
"""Controls VM power state.
Args:
@@ -608,7 +609,7 @@ def set_vm_power_state(module, vm_ref, power_state, timeout=300):
return (state_changed, vm_power_state_resulting)
def wait_for_task(module, task_ref, timeout=300):
def wait_for_task(module: AnsibleModule, task_ref, timeout=300):
"""Waits for async XAPI task to finish.
Args:
@@ -667,7 +668,7 @@ def wait_for_task(module, task_ref, timeout=300):
return result
def wait_for_vm_ip_address(module, vm_ref, timeout=300):
def wait_for_vm_ip_address(module: AnsibleModule, vm_ref, timeout=300):
"""Waits for VM to acquire an IP address.
Args:
@@ -730,7 +731,7 @@ def wait_for_vm_ip_address(module, vm_ref, timeout=300):
return vm_guest_metrics
def get_xenserver_version(module):
def get_xenserver_version(module: AnsibleModule):
"""Returns XenServer version.
Args:
@@ -758,10 +759,10 @@ def get_xenserver_version(module):
class XAPI:
"""Class for XAPI session management."""
_xapi_session = None
_xapi_session: t.Any | None = None
@classmethod
def connect(cls, module, disconnect_atexit=True):
def connect(cls, module: AnsibleModule, disconnect_atexit=True):
"""Establishes XAPI connection and returns session reference.
If no existing session is available, establishes a new one
@@ -837,7 +838,7 @@ class XenServerObject:
minor version.
"""
def __init__(self, module):
def __init__(self, module: AnsibleModule) -> None:
"""Inits XenServerObject using common module parameters.
Args: