From 0a802ecdcb818848556e7b84f91527b19885d4d7 Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Wed, 3 Dec 2025 00:07:46 +1300 Subject: [PATCH] deps module util: use Enum to represent states (#11242) * deps module util: use Enum to represent states * add changelog frag --- changelogs/fragments/11242-deps-enum.yml | 2 ++ plugins/module_utils/deps.py | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 changelogs/fragments/11242-deps-enum.yml diff --git a/changelogs/fragments/11242-deps-enum.yml b/changelogs/fragments/11242-deps-enum.yml new file mode 100644 index 0000000000..257c0431a0 --- /dev/null +++ b/changelogs/fragments/11242-deps-enum.yml @@ -0,0 +1,2 @@ +minor_changes: + - deps module utils - change the internal representaion of dependency state (https://github.com/ansible-collections/community.general/pull/11242). diff --git a/plugins/module_utils/deps.py b/plugins/module_utils/deps.py index 31e6dd7f2f..30d27f76c6 100644 --- a/plugins/module_utils/deps.py +++ b/plugins/module_utils/deps.py @@ -9,6 +9,7 @@ from __future__ import annotations import traceback import typing as t from contextlib import contextmanager +from enum import Enum from ansible.module_utils.basic import missing_required_lib @@ -19,24 +20,28 @@ if t.TYPE_CHECKING: _deps: dict[str, _Dependency] = dict() -class _Dependency: - _states = ["pending", "failure", "success"] +class _State(Enum): + PENDING = "pending" + FAILURE = "failure" + SUCCESS = "success" + +class _Dependency: def __init__(self, name: str, reason: str | None = None, url: str | None = None, msg: str | None = None) -> None: self.name = name self.reason = reason self.url = url self.msg = msg - self.state = 0 + self.state = _State.PENDING self.trace: str | None = None self.exc: Exception | None = None def succeed(self) -> None: - self.state = 2 + self.state = _State.SUCCESS def fail(self, exc: Exception, trace: str) -> None: - self.state = 1 + self.state = _State.FAILURE self.exc = exc self.trace = trace @@ -49,14 +54,14 @@ class _Dependency: @property def failed(self) -> bool: - return self.state == 1 + return self.state == _State.FAILURE def validate(self, module: AnsibleModule) -> None: if self.failed: module.fail_json(msg=self.message, exception=self.trace) def __str__(self) -> str: - return f"" + return f"" @contextmanager