diff --git a/plugins/module_utils/email_alert.py b/plugins/module_utils/email_alert.py index 3dc4ec6e5..ad07aad88 100644 --- a/plugins/module_utils/email_alert.py +++ b/plugins/module_utils/email_alert.py @@ -18,17 +18,17 @@ TypedEmailAlertToAnsible, TypedEmailAlertFromAnsible, ) -from typing import Union, Any, Dict +from typing import Union, Any, Dict, Optional class EmailAlert(PayloadMapper): def __init__( self, - uuid: Union[str, None] = None, - alert_tag_uuid: Union[str, None] = None, - email: Union[str, None] = None, - resend_delay: Union[int, None] = None, - silent_period: Union[int, None] = None, + uuid: Optional[str] = None, + alert_tag_uuid: Optional[str] = None, + email: Optional[str] = None, + resend_delay: Optional[int] = None, + silent_period: Optional[int] = None, latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] = None, ): self.uuid = uuid diff --git a/plugins/module_utils/hypercore_version.py b/plugins/module_utils/hypercore_version.py index a3ddfb0ad..d514da774 100644 --- a/plugins/module_utils/hypercore_version.py +++ b/plugins/module_utils/hypercore_version.py @@ -19,7 +19,7 @@ TypedUpdateStatusToAnsible, TypedTaskTag, ) -from typing import Any, Union +from typing import Any, Optional class HyperCoreVersion: @@ -174,8 +174,8 @@ def from_ansible(cls, ansible_data: dict[Any, Any]) -> None: @classmethod def from_hypercore( - cls, hypercore_data: Union[dict[Any, Any], None] - ) -> Union[None, Update]: + cls, hypercore_data: Optional[dict[Any, Any]] + ) -> Optional[Update]: if not hypercore_data: return None return cls( @@ -231,7 +231,7 @@ def get( uuid: str, must_exist: bool = True, check_mode: bool = False, - ) -> Union[None, Update]: + ) -> Optional[Update]: # api has a bug - the endpoint "/rest/v1/Update/{uuid}" returns a list of all available updates (and uuid can actually be anything), # that is why query is used update = rest_client.get_record( diff --git a/plugins/module_utils/oidc.py b/plugins/module_utils/oidc.py index c37a8b34c..4147e5b35 100644 --- a/plugins/module_utils/oidc.py +++ b/plugins/module_utils/oidc.py @@ -17,18 +17,18 @@ TypedOidcToAnsible, TypedOidcFromAnsible, ) -from typing import Union, Any +from typing import Any, Optional class Oidc(PayloadMapper): def __init__( self, - uuid: Union[str, None] = None, - client_id: Union[str, None] = None, - config_url: Union[str, None] = None, - certificate: Union[str, None] = None, - shared_secret: Union[str, None] = None, # Write-only - scopes: Union[str, None] = None, + uuid: Optional[str] = None, + client_id: Optional[str] = None, + config_url: Optional[str] = None, + certificate: Optional[str] = None, + shared_secret: Optional[str] = None, # Write-only + scopes: Optional[str] = None, ): self.uuid = uuid self.client_id = client_id @@ -38,7 +38,7 @@ def __init__( self.scopes = scopes @classmethod - def get(cls, rest_client: RestClient) -> Union[Oidc, None]: + def get(cls, rest_client: RestClient) -> Optional[Oidc]: result = rest_client.list_records("/rest/v1/OIDCConfig") if result: # One OIDC per cluster. diff --git a/plugins/module_utils/registration.py b/plugins/module_utils/registration.py index b68a4f863..504129409 100644 --- a/plugins/module_utils/registration.py +++ b/plugins/module_utils/registration.py @@ -17,21 +17,21 @@ TypedRegistrationFromAnsible, TypedRegistrationToAnsible, ) -from typing import Union, Any +from typing import Any, Optional class Registration(PayloadMapper): def __init__( self, - uuid: Union[str, None] = None, - company_name: Union[str, None] = None, - contact: Union[str, None] = None, - phone: Union[str, None] = None, - email: Union[str, None] = None, - cluster_id: Union[str, None] = None, - cluster_data: Union[str, None] = None, - cluster_data_hash: Union[str, None] = None, - cluster_data_hash_accepted: Union[str, None] = None, + uuid: Optional[str] = None, + company_name: Optional[str] = None, + contact: Optional[str] = None, + phone: Optional[str] = None, + email: Optional[str] = None, + cluster_id: Optional[str] = None, + cluster_data: Optional[str] = None, + cluster_data_hash: Optional[str] = None, + cluster_data_hash_accepted: Optional[str] = None, ): self.uuid = uuid self.company_name = company_name @@ -44,7 +44,7 @@ def __init__( self.cluster_data_hash_accepted = cluster_data_hash_accepted @classmethod - def get(cls, rest_client: RestClient) -> Union[Registration, None]: + def get(cls, rest_client: RestClient) -> Optional[Registration]: result = rest_client.list_records("/rest/v1/Registration") if result: # One registration per cluster. diff --git a/plugins/module_utils/rest_client.py b/plugins/module_utils/rest_client.py index 20b2188a8..30c4bb0d5 100644 --- a/plugins/module_utils/rest_client.py +++ b/plugins/module_utils/rest_client.py @@ -13,7 +13,7 @@ __metaclass__ = type -from typing import Any, Union +from typing import Any, Optional def _query(original=None): @@ -43,7 +43,7 @@ def get_record( query: dict[Any, Any] = None, must_exist: bool = False, timeout: float = None, - ) -> Union[dict[Any, Any], None]: + ) -> Optional[dict[Any, Any]]: records = self.list_records(endpoint=endpoint, query=query, timeout=timeout) if len(records) > 1: raise errors.ScaleComputingError( diff --git a/plugins/module_utils/role.py b/plugins/module_utils/role.py index 70c4459fe..1f469daa0 100644 --- a/plugins/module_utils/role.py +++ b/plugins/module_utils/role.py @@ -13,7 +13,7 @@ from ..module_utils.rest_client import RestClient from ..module_utils.typed_classes import TypedRoleToAnsible -from typing import Union, Any +from typing import Any, Optional class Role(PayloadMapper): @@ -26,9 +26,7 @@ def from_ansible(cls, ansible_data: Any) -> None: pass @classmethod - def from_hypercore( - cls, hypercore_data: Union[dict[Any, Any], None] - ) -> Union[Role, None]: + def from_hypercore(cls, hypercore_data: Optional[dict[Any, Any]]) -> Optional[Role]: if not hypercore_data: # In case for get_record, return None if no result is found return None @@ -63,7 +61,7 @@ def __eq__(self, other: object) -> bool: @classmethod def get_role_from_uuid( cls, role_uuid: str, rest_client: RestClient, must_exist: bool = False - ) -> Union[Role, None]: + ) -> Optional[Role]: hypercore_dict = rest_client.get_record( "/rest/v1/Role/{0}".format(role_uuid), must_exist=must_exist ) @@ -73,7 +71,7 @@ def get_role_from_uuid( @classmethod def get_role_from_name( cls, role_name: str, rest_client: RestClient, must_exist: bool = False - ) -> Union[Role, None]: + ) -> Optional[Role]: hypercore_dict = rest_client.get_record( "/rest/v1/Role", {"name": role_name}, must_exist=must_exist ) diff --git a/plugins/module_utils/smtp.py b/plugins/module_utils/smtp.py index 56800cf29..0a34c521a 100644 --- a/plugins/module_utils/smtp.py +++ b/plugins/module_utils/smtp.py @@ -16,20 +16,20 @@ TypedSmtpToAnsible, TypedSmtpFromAnsible, ) -from typing import Union, Any, Dict +from typing import Union, Any, Dict, Optional class SMTP(PayloadMapper): def __init__( self, - uuid: Union[str, None] = None, - server: Union[str, None] = None, - port: Union[int, None] = None, - use_ssl: Union[bool, None] = False, - use_auth: Union[bool, None] = False, - auth_user: Union[str, None] = None, - auth_password: Union[str, None] = None, - from_address: Union[str, None] = None, + uuid: Optional[str] = None, + server: Optional[str] = None, + port: Optional[int] = None, + use_ssl: Optional[bool] = False, + use_auth: Optional[bool] = False, + auth_user: Optional[str] = None, + auth_password: Optional[str] = None, + from_address: Optional[str] = None, latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] = None, ): self.uuid = uuid @@ -121,7 +121,7 @@ def get_by_uuid( ansible_dict: Dict[Any, Any], rest_client: RestClient, must_exist: bool = False, - ) -> Union[SMTP, None]: + ) -> Optional[SMTP]: query = get_query(ansible_dict, "uuid", ansible_hypercore_map=dict(uuid="uuid")) hypercore_dict = rest_client.get_record( "/rest/v1/AlertSMTPConfig", query, must_exist=must_exist diff --git a/plugins/module_utils/support_tunnel.py b/plugins/module_utils/support_tunnel.py index 1b1a66cb3..136fa0fee 100644 --- a/plugins/module_utils/support_tunnel.py +++ b/plugins/module_utils/support_tunnel.py @@ -12,11 +12,11 @@ from ansible.module_utils.basic import AnsibleModule from ..module_utils.client import Client from ..module_utils.typed_classes import TypedSupportTunnelToAnsible -from typing import Any, Union +from typing import Any, Union, Optional class SupportTunnel(PayloadMapper): - def __init__(self, open: bool, code: Union[int, None]): + def __init__(self, open: bool, code: Optional[int]): self.open = open self.code = code diff --git a/plugins/module_utils/syslog_server.py b/plugins/module_utils/syslog_server.py index 5734584fe..d2c1e46c2 100644 --- a/plugins/module_utils/syslog_server.py +++ b/plugins/module_utils/syslog_server.py @@ -18,7 +18,7 @@ TypedSyslogServerToAnsible, TypedSyslogServerFromAnsible, ) -from typing import List, Union, Any, Dict +from typing import List, Union, Any, Dict, Optional protocols = {"SYSLOG_PROTOCOL_TCP": "tcp", "SYSLOG_PROTOCOL_UDP": "udp"} @@ -26,13 +26,13 @@ class SyslogServer(PayloadMapper): def __init__( self, - uuid: Union[str, None] = None, - alert_tag_uuid: Union[str, None] = None, - host: Union[str, None] = None, - port: Union[int, None] = None, - protocol: Union[str, None] = None, - resend_delay: Union[int, None] = None, - silent_period: Union[int, None] = None, + uuid: Optional[str] = None, + alert_tag_uuid: Optional[str] = None, + host: Optional[str] = None, + port: Optional[int] = None, + protocol: Optional[str] = None, + resend_delay: Optional[int] = None, + silent_period: Optional[int] = None, latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] = None, ): self.uuid = uuid @@ -54,9 +54,7 @@ def from_ansible(cls, ansible_data: TypedSyslogServerFromAnsible) -> SyslogServe ) @classmethod - def from_hypercore( - cls, hypercore_data: Dict[Any, Any] - ) -> Union[SyslogServer, None]: + def from_hypercore(cls, hypercore_data: Dict[Any, Any]) -> Optional[SyslogServer]: if not hypercore_data: return None return cls( @@ -112,7 +110,7 @@ def get_by_uuid( ansible_dict: Dict[Any, Any], rest_client: RestClient, must_exist: bool = False, - ) -> Union[SyslogServer, None]: + ) -> Optional[SyslogServer]: query = get_query(ansible_dict, "uuid", ansible_hypercore_map=dict(uuid="uuid")) hypercore_dict = rest_client.get_record( "/rest/v1/AlertSyslogTarget", query, must_exist=must_exist @@ -126,7 +124,7 @@ def get_by_host( host: str, rest_client: RestClient, must_exist: bool = False, - ) -> Union[SyslogServer, None]: + ) -> Optional[SyslogServer]: hypercore_dict = rest_client.get_record( "/rest/v1/AlertSyslogTarget", {"host": host}, must_exist=must_exist ) @@ -138,7 +136,7 @@ def get_by_host( def get_state( cls, rest_client: RestClient, - ) -> List[Union[TypedSyslogServerToAnsible, None]]: + ) -> List[Optional[TypedSyslogServerToAnsible]]: state = [ cls.from_hypercore(hypercore_data=hypercore_dict).to_ansible() # type: ignore for hypercore_dict in rest_client.list_records( diff --git a/plugins/module_utils/typed_classes.py b/plugins/module_utils/typed_classes.py index 5e31cc155..e83ab9465 100644 --- a/plugins/module_utils/typed_classes.py +++ b/plugins/module_utils/typed_classes.py @@ -9,25 +9,25 @@ __metaclass__ = type -from typing import TypedDict, Union, Any +from typing import TypedDict, Union, Any, Optional # Typed Classes use for Python hints. # Registration to ansible return dict. class TypedRegistrationToAnsible(TypedDict): - company_name: Union[str, None] - contact: Union[str, None] - phone: Union[str, None] - email: Union[str, None] + company_name: Optional[str] + contact: Optional[str] + phone: Optional[str] + email: Optional[str] # Registration from ansible input dict. class TypedRegistrationFromAnsible(TypedDict): - company_name: Union[str, None] - contact: Union[str, None] - phone: Union[str, None] - email: Union[str, None] + company_name: Optional[str] + contact: Optional[str] + phone: Optional[str] + email: Optional[str] # Task tag return dict. @@ -45,7 +45,7 @@ class TypedDNSConfigToAnsible(TypedDict): # Support_tunnel to ansible return dict. class TypedSupportTunnelToAnsible(TypedDict): open: bool - code: Union[int, None] + code: Optional[int] # User to ansible return dict. @@ -65,9 +65,9 @@ class TypedRoleToAnsible(TypedDict): # OIDC to ansible return dict. class TypedOidcToAnsible(TypedDict): - client_id: Union[str, None] - config_url: Union[str, None] - scopes: Union[str, None] + client_id: Optional[str] + config_url: Optional[str] + scopes: Optional[str] # OIDC from ansible dict. @@ -143,74 +143,74 @@ class TypedDiff(TypedDict): # smtp module class TypedSmtpToAnsible(TypedDict): - uuid: Union[str, None] - server: Union[str, None] - port: Union[int, None] - use_ssl: Union[bool, None] - use_auth: Union[bool, None] - auth_user: Union[str, None] - auth_password: Union[str, None] - from_address: Union[str, None] + uuid: Optional[str] + server: Optional[str] + port: Optional[int] + use_ssl: Optional[bool] + use_auth: Optional[bool] + auth_user: Optional[str] + auth_password: Optional[str] + from_address: Optional[str] latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] class TypedSmtpFromAnsible(TypedDict): - uuid: Union[str, None] - server: Union[str, None] - port: Union[int, None] - use_ssl: Union[bool, None] - use_auth: Union[bool, None] - auth_user: Union[str, None] - auth_password: Union[str, None] - from_address: Union[str, None] - latest_task_tag: Union[TypedTaskTag, None] + uuid: Optional[str] + server: Optional[str] + port: Optional[int] + use_ssl: Optional[bool] + use_auth: Optional[bool] + auth_user: Optional[str] + auth_password: Optional[str] + from_address: Optional[str] + latest_task_tag: Optional[TypedTaskTag] class TypedEmailAlertToAnsible(TypedDict): - uuid: Union[str, None] - alert_tag_uuid: Union[str, None] - email: Union[str, None] - resend_delay: Union[int, None] - silent_period: Union[int, None] + uuid: Optional[str] + alert_tag_uuid: Optional[str] + email: Optional[str] + resend_delay: Optional[int] + silent_period: Optional[int] latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] class TypedEmailAlertFromAnsible(TypedDict): - uuid: Union[str, None] - alert_tag_uuid: Union[str, None] - email: Union[str, None] - resend_delay: Union[int, None] - silent_period: Union[int, None] + uuid: Optional[str] + alert_tag_uuid: Optional[str] + email: Optional[str] + resend_delay: Optional[int] + silent_period: Optional[int] latest_task_tag: Union[TypedTaskTag, None] class TypedVirtualDiskToAnsible(TypedDict): - name: Union[str, None] - uuid: Union[str, None] - block_size: Union[int, None] - size: Union[int, None] + name: Optional[str] + uuid: Optional[str] + block_size: Optional[int] + size: Optional[int] # allocated_size: int - replication_factor: Union[int, None] + replication_factor: Optional[int] class TypedVirtualDiskFromAnsible(TypedDict): - name: Union[str, None] + name: Optional[str] # uuid: str class TypedSyslogServerToAnsible(TypedDict): - uuid: Union[str, None] - alert_tag_uuid: Union[str, None] - host: Union[str, None] - port: Union[int, None] - protocol: Union[str, None] - resend_delay: Union[int, None] - silent_period: Union[int, None] + uuid: Optional[str] + alert_tag_uuid: Optional[str] + host: Optional[str] + port: Optional[int] + protocol: Optional[str] + resend_delay: Optional[int] + silent_period: Optional[int] latest_task_tag: Union[TypedTaskTag, dict[Any, Any], None] class TypedSyslogServerFromAnsible(TypedDict): - uuid: Union[str, None] - host: Union[str, None] - port: Union[int, None] - protocol: Union[str, None] + uuid: Optional[str] + host: Optional[str] + port: Optional[int] + protocol: Optional[str] diff --git a/plugins/module_utils/user.py b/plugins/module_utils/user.py index 4e7821cab..64689f138 100644 --- a/plugins/module_utils/user.py +++ b/plugins/module_utils/user.py @@ -12,7 +12,7 @@ from ..module_utils.role import Role from ..module_utils.rest_client import RestClient from ..module_utils.typed_classes import TypedUserToAnsible -from typing import Union +from typing import Optional class User(PayloadMapper): @@ -35,7 +35,7 @@ def from_ansible(cls): pass @classmethod - def from_hypercore(cls, hypercore_data: dict) -> Union[User, None]: + def from_hypercore(cls, hypercore_data: dict) -> Optional[User]: # In case for get_record, return None if no result is found if not hypercore_data: return None @@ -84,7 +84,7 @@ def __eq__(self, other: object) -> bool: @classmethod def get_user_from_uuid( cls, user_uuid, rest_client: RestClient, must_exist: bool = False - ) -> Union[User, None]: + ) -> Optional[User]: hypercore_dict = rest_client.get_record( "/rest/v1/User/{0}".format(user_uuid), must_exist=must_exist ) @@ -94,7 +94,7 @@ def get_user_from_uuid( @classmethod def get_user_from_username( cls, username, rest_client: RestClient, must_exist: bool = False - ) -> Union[User, None]: + ) -> Optional[User]: hypercore_dict = rest_client.get_record( "/rest/v1/User", {"username": username}, must_exist=must_exist ) diff --git a/plugins/module_utils/virtual_disk.py b/plugins/module_utils/virtual_disk.py index 2f93e552b..9e857b984 100644 --- a/plugins/module_utils/virtual_disk.py +++ b/plugins/module_utils/virtual_disk.py @@ -12,7 +12,7 @@ TypedVirtualDiskFromAnsible, TypedVirtualDiskToAnsible, ) -from typing import Union, Dict, List, Any +from typing import Dict, List, Any, Optional from .rest_client import RestClient from ..module_utils.utils import PayloadMapper @@ -21,12 +21,12 @@ class VirtualDisk(PayloadMapper): def __init__( self, - name: Union[str, None] = None, - uuid: Union[str, None] = None, - block_size: Union[int, None] = None, - size: Union[int, None] = None, + name: Optional[str] = None, + uuid: Optional[str] = None, + block_size: Optional[int] = None, + size: Optional[int] = None, # allocated_size: int = None, - replication_factor: Union[int, None] = None, + replication_factor: Optional[int] = None, ): self.name = name self.uuid = uuid diff --git a/plugins/modules/certificate.py b/plugins/modules/certificate.py index e269852e4..d8425f03f 100644 --- a/plugins/modules/certificate.py +++ b/plugins/modules/certificate.py @@ -68,7 +68,7 @@ ) from ..module_utils.task_tag import TaskTag -from typing import Union, Tuple +from typing import Tuple, Optional import ssl from time import sleep @@ -94,7 +94,7 @@ def upload_cert(module: AnsibleModule, rest_client: RestClient) -> TypedTaskTag: def ensure_present( module: AnsibleModule, rest_client: RestClient -) -> Tuple[bool, Union[TypedCertificateToAnsible, None], TypedDiff]: +) -> Tuple[bool, Optional[TypedCertificateToAnsible], TypedDiff]: before: TypedCertificateToAnsible = dict(certificate=get_certificate(module)) task = upload_cert(module, rest_client) # After certificate is uploaded the cluster loses connection @@ -116,7 +116,7 @@ def ensure_present( def run( module: AnsibleModule, rest_client: RestClient -) -> Tuple[bool, Union[TypedCertificateToAnsible, None], TypedDiff]: +) -> Tuple[bool, Optional[TypedCertificateToAnsible], TypedDiff]: return ensure_present(module, rest_client) diff --git a/plugins/modules/email_alert_info.py b/plugins/modules/email_alert_info.py index 2e2def357..7254dc7bb 100644 --- a/plugins/modules/email_alert_info.py +++ b/plugins/modules/email_alert_info.py @@ -67,10 +67,10 @@ from ..module_utils.rest_client import RestClient from ..module_utils.email_alert import EmailAlert from ..module_utils.typed_classes import TypedEmailAlertToAnsible -from typing import List, Union +from typing import List, Optional -def run(rest_client: RestClient) -> List[Union[TypedEmailAlertToAnsible, None]]: +def run(rest_client: RestClient) -> List[Optional[TypedEmailAlertToAnsible]]: return EmailAlert.get_state(rest_client) diff --git a/plugins/modules/oidc_config.py b/plugins/modules/oidc_config.py index bdb1392e5..93683000c 100644 --- a/plugins/modules/oidc_config.py +++ b/plugins/modules/oidc_config.py @@ -81,14 +81,14 @@ from ..module_utils.oidc import Oidc from ..module_utils.typed_classes import TypedOidcToAnsible, TypedDiff from ..module_utils.task_tag import TaskTag -from typing import Union, Tuple +from typing import Tuple, Optional from time import sleep def ensure_present( module: AnsibleModule, rest_client: RestClient, -) -> Tuple[bool, Union[TypedOidcToAnsible, None], TypedDiff]: +) -> Tuple[bool, Optional[TypedOidcToAnsible], TypedDiff]: oidc_obj_ansible = Oidc.from_ansible(module.params) # If we get "502 bad gateway" during reconfiguration, we need to retry. max_retries = 10 @@ -119,7 +119,7 @@ def ensure_present( def run( module: AnsibleModule, rest_client: RestClient -) -> Tuple[bool, Union[TypedOidcToAnsible, None], TypedDiff]: +) -> Tuple[bool, Optional[TypedOidcToAnsible], TypedDiff]: return ensure_present(module, rest_client) diff --git a/plugins/modules/oidc_config_info.py b/plugins/modules/oidc_config_info.py index ae9a1ed51..5d607369f 100644 --- a/plugins/modules/oidc_config_info.py +++ b/plugins/modules/oidc_config_info.py @@ -47,12 +47,12 @@ from ..module_utils.oidc import Oidc from ..module_utils.rest_client import CachedRestClient from ..module_utils.typed_classes import TypedOidcToAnsible -from typing import Union, Tuple +from typing import Tuple, Optional def run( module: AnsibleModule, rest_client: CachedRestClient -) -> Tuple[bool, Union[TypedOidcToAnsible, None]]: +) -> Tuple[bool, Optional[TypedOidcToAnsible]]: oidc_list = rest_client.list_records("/rest/v1/OIDCConfig") if oidc_list: return False, Oidc.from_hypercore(oidc_list[0]).to_ansible() diff --git a/plugins/modules/registration.py b/plugins/modules/registration.py index 7b911a381..7c12b3c96 100644 --- a/plugins/modules/registration.py +++ b/plugins/modules/registration.py @@ -90,14 +90,14 @@ from ..module_utils.registration import Registration from ..module_utils.typed_classes import TypedRegistrationToAnsible, TypedDiff from ..module_utils.task_tag import TaskTag -from typing import Union, Tuple +from typing import Tuple, Optional def ensure_present( module: AnsibleModule, rest_client: RestClient, - registration_obj: Union[Registration, None], -) -> Tuple[bool, Union[TypedRegistrationToAnsible, None], TypedDiff]: + registration_obj: Optional[Registration], +) -> Tuple[bool, Optional[TypedRegistrationToAnsible], TypedDiff]: before = registration_obj.to_ansible() if registration_obj else None registration_obj_ansible = Registration.from_ansible(module.params) if registration_obj is None: @@ -115,8 +115,8 @@ def ensure_present( def ensure_absent( module: AnsibleModule, rest_client: RestClient, - registration_obj: Union[Registration, None], -) -> Tuple[bool, Union[TypedRegistrationToAnsible, None], TypedDiff]: + registration_obj: Optional[Registration], +) -> Tuple[bool, Optional[TypedRegistrationToAnsible], TypedDiff]: before = registration_obj.to_ansible() if registration_obj else None after = None if registration_obj: @@ -129,7 +129,7 @@ def ensure_absent( def run( module: AnsibleModule, rest_client: RestClient -) -> Tuple[bool, Union[TypedRegistrationToAnsible, None], TypedDiff]: +) -> Tuple[bool, Optional[TypedRegistrationToAnsible], TypedDiff]: registration_obj = Registration.get(rest_client) if module.params["state"] == State.present: return ensure_present(module, rest_client, registration_obj) diff --git a/plugins/modules/registration_info.py b/plugins/modules/registration_info.py index 455204375..9ea350a01 100644 --- a/plugins/modules/registration_info.py +++ b/plugins/modules/registration_info.py @@ -53,12 +53,12 @@ from ..module_utils.typed_classes import TypedRegistrationToAnsible from ..module_utils.rest_client import CachedRestClient -from typing import Union +from typing import Optional def run( module: AnsibleModule, rest_client: CachedRestClient -) -> Union[TypedRegistrationToAnsible, None]: +) -> Optional[TypedRegistrationToAnsible]: registration_list = rest_client.list_records("/rest/v1/Registration") if registration_list: return Registration.from_hypercore(registration_list[0]).to_ansible() diff --git a/plugins/modules/syslog_server_info.py b/plugins/modules/syslog_server_info.py index f4c3604c5..336890fd8 100644 --- a/plugins/modules/syslog_server_info.py +++ b/plugins/modules/syslog_server_info.py @@ -72,10 +72,10 @@ from ..module_utils.rest_client import RestClient from ..module_utils.syslog_server import SyslogServer from ..module_utils.typed_classes import TypedSyslogServerToAnsible -from typing import List, Union +from typing import List, Optional -def run(rest_client: RestClient) -> List[Union[TypedSyslogServerToAnsible, None]]: +def run(rest_client: RestClient) -> List[Optional[TypedSyslogServerToAnsible]]: return SyslogServer.get_state(rest_client) diff --git a/plugins/modules/user.py b/plugins/modules/user.py index 4a8d21812..dff8c3fd9 100644 --- a/plugins/modules/user.py +++ b/plugins/modules/user.py @@ -118,7 +118,7 @@ from ..module_utils.user import User from ..module_utils.role import Role from ..module_utils.typed_classes import TypedUserToAnsible, TypedDiff -from typing import List, Tuple, Union, Dict, Any +from typing import List, Tuple, Union, Dict, Any, Optional def get_role_uuids(module: AnsibleModule, rest_client: RestClient) -> List[str]: @@ -207,7 +207,7 @@ def update_user( def delete_user( - rest_client: RestClient, user: Union[User, None] + rest_client: RestClient, user: Optional[User] ) -> Tuple[bool, Union[TypedUserToAnsible, Dict[None, None]], TypedDiff]: if not user: return (False, dict(), dict(before=None, after=None)) diff --git a/plugins/modules/user_info.py b/plugins/modules/user_info.py index 3c7aa6fb0..ba84c5775 100644 --- a/plugins/modules/user_info.py +++ b/plugins/modules/user_info.py @@ -67,12 +67,12 @@ from ..module_utils.user import User from ..module_utils.utils import get_query from ..module_utils.typed_classes import TypedUserToAnsible -from typing import List, Union +from typing import List, Optional def run( module: AnsibleModule, rest_client: RestClient -) -> List[Union[TypedUserToAnsible, None]]: +) -> List[Optional[TypedUserToAnsible]]: query = get_query( module.params, "username", ansible_hypercore_map=dict(username="username") ) diff --git a/plugins/modules/version_update.py b/plugins/modules/version_update.py index 0e6034dad..1cadf5edc 100644 --- a/plugins/modules/version_update.py +++ b/plugins/modules/version_update.py @@ -65,12 +65,12 @@ from ..module_utils.cluster import Cluster from ..module_utils.hypercore_version import Update from ..module_utils.typed_classes import TypedUpdateToAnsible -from typing import Tuple, Union, Dict, Any +from typing import Tuple, Dict, Any, Optional def run( module: AnsibleModule, rest_client: RestClient -) -> Tuple[bool, Union[TypedUpdateToAnsible, None], Dict[Any, Any]]: +) -> Tuple[bool, Optional[TypedUpdateToAnsible], Dict[Any, Any]]: cluster = Cluster.get(rest_client) if cluster.icos_version == module.params["icos_version"]: return ( diff --git a/plugins/modules/version_update_info.py b/plugins/modules/version_update_info.py index 152dd43d8..fc9fc91c7 100644 --- a/plugins/modules/version_update_info.py +++ b/plugins/modules/version_update_info.py @@ -54,10 +54,10 @@ from ..module_utils.client import Client from ..module_utils.hypercore_version import Update from ..module_utils.typed_classes import TypedUpdateToAnsible -from typing import List, Union +from typing import List, Optional -def run(rest_client: RestClient) -> List[Union[TypedUpdateToAnsible, None]]: +def run(rest_client: RestClient) -> List[Optional[TypedUpdateToAnsible]]: return [ Update.from_hypercore(hypercore_data=hypercore_dict).to_ansible() # type: ignore for hypercore_dict in rest_client.list_records("/rest/v1/Update")