# Copyright (c) 2019-2020, Felix Fontein # 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 # Note that this module util is **PRIVATE** to the collection. It can have breaking changes at any time. # Do not use this from other collections or standalone plugins/modules! from __future__ import annotations import typing as t from ansible.errors import AnsibleConnectionFailure from ansible.utils.display import Display from ansible_collections.community.docker.plugins.module_utils._common import ( AnsibleDockerClientBase, ) from ansible_collections.community.docker.plugins.module_utils._util import ( DOCKER_COMMON_ARGS, ) if t.TYPE_CHECKING: from ansible.plugins import AnsiblePlugin class AnsibleDockerClient(AnsibleDockerClientBase): def __init__( self, plugin: AnsiblePlugin, min_docker_version: str | None = None, min_docker_api_version: str | None = None, ) -> None: self.plugin = plugin self.display = Display() super().__init__( min_docker_version=min_docker_version, min_docker_api_version=min_docker_api_version, ) def fail(self, msg: str, **kwargs: t.Any) -> t.NoReturn: if kwargs: msg += "\nContext:\n" + "\n".join( f" {k} = {v!r}" for (k, v) in kwargs.items() ) raise AnsibleConnectionFailure(msg) def deprecate( self, msg: str, version: str | None = None, date: str | None = None, collection_name: str | None = None, ) -> None: self.display.deprecated( msg, version=version, date=date, collection_name=collection_name ) def _get_params(self) -> dict[str, t.Any]: return {option: self.plugin.get_option(option) for option in DOCKER_COMMON_ARGS}