fix: Make relative imports in collection modules work#1492
fix: Make relative imports in collection modules work#1492thommyhh wants to merge 3 commits intomitogen-hq:masterfrom
Conversation
Use `NewStylePlanner` for collection modules with relative imports and replace the relative imports with absolute imports.
| """ | ||
| runner_name = 'NewStyleRunner' | ||
| MARKER = re.compile(br'from ansible(?:_collections|\.module_utils)\.') | ||
| MARKER = re.compile(br'from ansible(?:_collections|\.module_utils)\.|from \.\.?(?:\w|\s)') |
There was a problem hiding this comment.
Issue #896 mentions explicit-relative imports (e.g. from ..module_utils.core import AnsibleAWSModule) that
- are relative by 2 levels (2 dots preceeding)
- importing
<some_prefix>.module_utils.<...>
This regex as written would also match imports that
- are relative by 1 level (
e.g. from .module_utils<...>) - do not involve
<some_prefix>.module_utils<...>
Did you mean to cast such a wide net? What other relative imports is this meant to tackle?
>>> MARKER = re.compile(br'from ansible(?:_collections|\.module_utils)\.|from \.\.?(?:\w|\s)')
>>> MARKER.search('from .foo import bar')
<_sre.SRE_Match object at 0x7fc3d0054f38>There was a problem hiding this comment.
Some rough grepping shows relative imports other than from ..module_utils are common in Ansible modules and module_utils. So question withdrawn.
Details
➜ site-packages git:(master) ✗ ag 'from \.[^.m]' --py ansible/modules/ ansible/module_utils ansible_collections/*/*/plugins/module*
ansible/modules/git.py
809: # Use original destination directory with data from .git file.
963: # FIXME: determine this from .gitmodules
ansible/module_utils/_internal/_plugin_info.py
5:from . import _messages
ansible/module_utils/_internal/_ansiballz/_respawn.py
7:from . import _respawn_wrapper
ansible/module_utils/_internal/_traceback.py
11:from . import _stack
ansible/module_utils/_internal/_errors.py
11:from . import _messages
ansible/module_utils/_internal/_patches/_sys_intern_patch.py
9:from . import CallablePatch
ansible/module_utils/_internal/_patches/_socket_patch.py
9:from . import CallablePatch
ansible/module_utils/_internal/_patches/_dataclass_annotation_patch.py
9:from . import CallablePatch
ansible/module_utils/_internal/_concurrent/_futures.py
8:from . import _daemon_threading
ansible/module_utils/datatag.py
6:from ._internal import _datatag, _deprecator, _traceback, _messages
7:from ._internal._datatag import _tags
ansible/module_utils/testing.py
15:from . import basic as _basic
ansible/module_utils/basic.py
88:from ._internal import _traceback, _errors, _debugging, _deprecator, _messages
90:from .common.text.converters import (
ansible_collections/amazon/aws/plugins/module_utils/direct_connect.py
41:from .retries import AWSRetry
ansible_collections/amazon/aws/plugins/module_utils/retries.py
40:from .cloud import CloudRetry
ansible_collections/amazon/aws/plugins/module_utils/transformation.py
43:from .botocore import normalize_boto3_result
44:from .tagging import boto3_tag_list_to_ansible_dict
ansible_collections/amazon/aws/plugins/module_utils/waf.py
41:from .retries import AWSRetry
42:from .waiters import get_waiter
ansible_collections/amazon/aws/plugins/module_utils/botocore.py
67: from .retries import RetryingBotoClientWrapper
85:from .common import get_collection_info
86:from .exceptions import AnsibleBotocoreError
87:from .retries import AWSRetry
ansible_collections/amazon/aws/plugins/module_utils/iam.py
15:from .arn import parse_aws_arn
16:from .arn import validate_aws_arn
17:from .botocore import is_boto3_error_code
18:from .errors import AWSErrorHandler
19:from .exceptions import AnsibleAWSError
20:from .retries import AWSRetry
21:from .tagging import ansible_dict_to_boto3_tag_list
22:from .transformation import AnsibleAWSResource
23:from .transformation import AnsibleAWSResourceList
24:from .transformation import BotoResource
25:from .transformation import BotoResourceList
26:from .transformation import boto3_resource_list_to_ansible_dict
27:from .transformation import boto3_resource_to_ansible_dict
ansible_collections/amazon/aws/plugins/module_utils/cloudfront_facts.py
27:from .retries import AWSRetry
28:from .tagging import boto3_tag_list_to_ansible_dict
ansible_collections/amazon/aws/plugins/module_utils/core.py
41:from .arn import parse_aws_arn # pylint: disable=unused-import
44:from .botocore import HAS_BOTO3 # pylint: disable=unused-import
45:from .botocore import get_boto3_client_method_parameters # pylint: disable=unused-import
46:from .botocore import is_boto3_error_code # pylint: disable=unused-import
47:from .botocore import is_boto3_error_message # pylint: disable=unused-import
48:from .botocore import normalize_boto3_result # pylint: disable=unused-import
51:from .exceptions import AnsibleAWSError # pylint: disable=unused-import
57:from .transformation import scrub_none_parameters # pylint: disable=unused-import
ansible_collections/amazon/aws/plugins/module_utils/elbv2.py
21:from .ec2 import get_ec2_security_group_ids_from_names
22:from .elb_utils import AnsibleELBv2Error
23:from .elb_utils import add_listener_certificates
24:from .elb_utils import add_tags
25:from .elb_utils import convert_tg_name_to_arn
26:from .elb_utils import create_listener
27:from .elb_utils import create_load_balancer
28:from .elb_utils import create_rule
29:from .elb_utils import delete_listener
30:from .elb_utils import delete_load_balancer
31:from .elb_utils import delete_rule
32:from .elb_utils import describe_listeners
33:from .elb_utils import describe_load_balancer_attributes
34:from .elb_utils import describe_rules
35:from .elb_utils import describe_tags
36:from .elb_utils import get_elb
37:from .elb_utils import modify_listener
38:from .elb_utils import modify_load_balancer_attributes
39:from .elb_utils import modify_rule
40:from .elb_utils import remove_tags
41:from .elb_utils import set_ip_address_type
42:from .elb_utils import set_rule_priorities
43:from .elb_utils import set_security_groups
44:from .elb_utils import set_subnets
46:from .retries import AWSRetry
47:from .tagging import ansible_dict_to_boto3_tag_list
48:from .tagging import boto3_tag_list_to_ansible_dict
49:from .transformation import scrub_none_parameters
50:from .waiters import get_waiter
ansible_collections/amazon/aws/plugins/module_utils/errors.py
13:from .exceptions import AnsibleAWSError
ansible_collections/amazon/aws/plugins/module_utils/acm.py
27:from .botocore import is_boto3_error_code
28:from .retries import AWSRetry
29:from .tagging import ansible_dict_to_boto3_tag_list
30:from .tagging import boto3_tag_list_to_ansible_dict
ansible_collections/amazon/aws/plugins/module_utils/elb_utils.py
11:from .botocore import is_boto3_error_code
12:from .errors import AWSErrorHandler
13:from .exceptions import AnsibleAWSError
14:from .retries import AWSRetry
ansible_collections/amazon/aws/plugins/module_utils/modules.py
56:from .botocore import boto3_at_least
57:from .botocore import boto3_conn
58:from .botocore import botocore_at_least
59:from .botocore import check_sdk_version_supported
60:from .botocore import gather_sdk_versions
61:from .botocore import get_aws_connection_info
62:from .botocore import get_aws_region
63:from .exceptions import AnsibleBotocoreError
64:from .retries import RetryingBotoClientWrapper
ansible_collections/amazon/aws/plugins/module_utils/autoscaling.py
15:from ._autoscaling import common as _common
16:from ._autoscaling import groups as _groups
17:from ._autoscaling import instances as _instances
18:from ._autoscaling import transformations as _transformations
19:from ._autoscaling import waiters as _waiters
20:from .retries import AWSRetry
28: from .retries import RetryingBotoClientWrapper
29: from .transformation import AnsibleAWSResourceList
30: from .transformation import BotoResourceList
ansible_collections/amazon/aws/plugins/module_utils/s3.py
18: from .retries import RetryingBotoClientWrapper
43:from ._s3 import common as _common
44:from ._s3 import transformations as _transformations
45:from ._s3 import waiters as _waiters
ansible_collections/amazon/aws/plugins/module_utils/_autoscaling/instances.py
8:# from .common import AnsibleAutoScalingError
9:from .common import AutoScalingErrorHandler
ansible_collections/amazon/aws/plugins/module_utils/ec2.py
58:from .arn import is_outpost_arn as is_outposts_arn # pylint: disable=unused-import
59:from .arn import validate_aws_arn
62:from .botocore import HAS_BOTO3 # pylint: disable=unused-import
63:from .botocore import boto3_conn # pylint: disable=unused-import
64:from .botocore import boto3_inventory_conn # pylint: disable=unused-import
65:from .botocore import boto_exception # pylint: disable=unused-import
66:from .botocore import get_aws_connection_info # pylint: disable=unused-import
67:from .botocore import get_aws_region # pylint: disable=unused-import
68:from .botocore import is_boto3_error_code
69:from .botocore import paginated_query_with_retries
70:from .errors import AWSErrorHandler
73:from .exceptions import AnsibleAWSError # pylint: disable=unused-import
74:from .iam import list_iam_instance_profiles
82:from .policy import _py3cmp as py3cmp # pylint: disable=unused-import
83:from .policy import compare_policies # pylint: disable=unused-import
86:from .retries import AWSRetry # pylint: disable=unused-import
89:from .tagging import ansible_dict_to_boto3_tag_list # pylint: disable=unused-import
90:from .tagging import boto3_tag_list_to_ansible_dict # pylint: disable=unused-import
91:from .tagging import boto3_tag_specifications
92:from .tagging import compare_aws_tags # pylint: disable=unused-import
95:from .transformation import ansible_dict_to_boto3_filter_list # pylint: disable=unused-import
96:from .transformation import map_complex_type # pylint: disable=unused-import
ansible_collections/amazon/aws/plugins/module_utils/_autoscaling/groups.py
8:# from .common import AnsibleAutoScalingError
9:from .common import AutoScalingErrorHandler
ansible_collections/ansible/posix/plugins/module_utils/version.py
18:from ._version import LooseVersion, StrictVersion
ansible_collections/awx/awx/plugins/module_utils/awxkit.py
5:from .controller_api import ControllerModule
ansible_collections/awx/awx/plugins/modules/ad_hoc_command_cancel.py
36: - The interval in seconds, to request an update from .
37: required: False
ansible_collections/community/dns/plugins/module_utils/zone_record_set_helpers.py
21: from .provider import ProviderInformation # pragma: no cover
22: from .record_set import DNSRecordSet # pragma: no cover
23: from .zone_record_set_api import ZoneRecordSetAPI # pragma: no cover
ansible_collections/community/dns/plugins/module_utils/module/zone_info.py
24:from ._utils import normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/module/record_info.py
41:from ._utils import get_prefix, normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/module/record_set_info.py
44:from ._utils import get_prefix, normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/module/record.py
49:from ._utils import get_prefix, normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/module/record_sets.py
54:from ._utils import get_prefix, normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/module/record_set.py
54:from ._utils import get_prefix, normalize_dns_name
ansible_collections/community/dns/plugins/module_utils/json_api_helper.py
37: from .http import HTTPHelper # pragma: no cover
38: from .provider import ProviderInformation # pragma: no cover
39: from .record import DNSRecord # pragma: no cover
40: from .zone_record_api import ZoneRecordAPI # pragma: no cover
ansible_collections/community/dns/plugins/module_utils/zone_record_helpers.py
21: from .provider import ProviderInformation # pragma: no cover
22: from .record import DNSRecord # pragma: no cover
23: from .zone_record_api import ZoneRecordAPI # pragma: no cover
ansible_collections/community/dns/plugins/module_utils/zone.py
17: from .record import DNSRecord # pragma: no cover
18: from .record_set import DNSRecordSet # pragma: no cover
ansible_collections/community/dns/plugins/module_utils/record_set.py
11:from .record import format_ttl as _format_ttl
ansible_collections/community/docker/plugins/module_utils/_api/auth.py
19:from . import errors
20:from .credentials.errors import CredentialsNotFound, StoreError
21:from .credentials.store import Store
22:from .utils import config
ansible_collections/community/docker/plugins/module_utils/_module_container/docker_api.py
125: from .base import Option, OptionGroup
ansible_collections/community/docker/plugins/module_utils/_common.py
228: # from .util import log_debug
ansible_collections/community/docker/plugins/module_utils/_module_container/module.py
37: from .base import Engine, EngineDriver, Option, OptionGroup
ansible_collections/community/docker/plugins/module_utils/_api/context/context.py
21:from .config import (
ansible_collections/community/docker/plugins/module_utils/_api/transport/npipeconn.py
19:from .basehttpadapter import BaseHTTPAdapter
20:from .npipesocket import NpipeSocket
ansible_collections/community/docker/plugins/module_utils/_api/context/api.py
19:from .config import (
25:from .context import Context
ansible_collections/community/docker/plugins/module_utils/_api/transport/sshconn.py
26:from .basehttpadapter import BaseHTTPAdapter
ansible_collections/community/docker/plugins/module_utils/_api/transport/ssladapter.py
17:from .basehttpadapter import BaseHTTPAdapter
ansible_collections/community/docker/plugins/module_utils/_api/_import_helper.py
92: from .errors import MissingRequirementException # pylint: disable=cyclic-import
98: from .errors import MissingRequirementException # pylint: disable=cyclic-import
ansible_collections/community/docker/plugins/module_utils/_api/transport/unixconn.py
19:from .basehttpadapter import BaseHTTPAdapter
ansible_collections/community/docker/plugins/module_utils/_api/utils/proxy.py
16:from .utils import format_environment
ansible_collections/community/docker/plugins/module_utils/_api/utils/build.py
23:from . import fnmatch
ansible_collections/community/docker/plugins/module_utils/_api/utils/decorators.py
18:from . import utils
ansible_collections/community/docker/plugins/module_utils/_api/tls.py
17:from . import errors
18:from .transport.ssladapter import SSLHTTPAdapter
ansible_collections/community/docker/plugins/module_utils/_api/credentials/store.py
19:from . import constants, errors
20:from .utils import create_environment_dict, find_executable
ansible_collections/community/docker/plugins/module_utils/_api/errors.py
18:from ._import_helper import HTTPError as _HTTPError
ansible_collections/community/docker/plugins/module_utils/_common_api.py
150: # from .util import log_debug
ansible_collections/community/docker/plugins/module_utils/_common_cli.py
155: # from .util import log_debug
ansible_collections/community/docker/plugins/module_utils/_util.py
26: from ._common import AnsibleDockerClientBase as CADCB
27: from ._common_api import AnsibleDockerClientBase as CAPIADCB
28: from ._common_cli import AnsibleDockerClientBase as CCLIADCB
ansible_collections/community/general/plugins/modules/zypper_repository.py
425: # Set alias (name) and url based on values from .repo file
ansible_collections/community/mysql/plugins/module_utils/version.py
16:from ._version import LooseVersion
ansible_collections/community/mysql/plugins/module_utils/command_resolver.py
4:from ._version import LooseVersion
ansible_collections/community/okd/plugins/module_utils/openshift_import_image.py
253: # nor we can't create any from .spec.dockerImageRepository
ansible_collections/community/postgresql/plugins/module_utils/version.py
15:from ._version import LooseVersion # noqa
ansible_collections/community/rabbitmq/plugins/module_utils/version.py
16:from ._version import LooseVersion, StrictVersion
ansible_collections/containers/podman/plugins/modules/podman_quadlet.py
203:- name: Install multi-quadlet application from .quadlets file (Podman 6.0+)
ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_utils/info/sensor_amperage.py
27:from .chassis_sensor_util import IDRACChassisSensors
ansible_collections/dellemc/openmanage/plugins/module_utils/idrac_utils/info/system_board_metrics.py
28:from .chassis_sensor_util import IDRACChassisSensors
ansible_collections/f5networks/f5_modules/plugins/module_utils/bigiq.py
12:from .common import (
15:from .constants import (
18:from .icontrol import iControlRestSession
ansible_collections/f5networks/f5_modules/plugins/module_utils/bigip.py
11:from .common import (
14:from .constants import (
17:from .icontrol import iControlRestSession
ansible_collections/f5networks/f5_modules/plugins/module_utils/teem.py
28:from .constants import (
32:from .version import CURRENT_COLL_VERSION
ansible_collections/f5networks/f5_modules/plugins/module_utils/urls.py
12:from .common import F5ModuleError
ansible_collections/f5networks/f5_modules/plugins/module_utils/icontrol.py
31:from .common import F5ModuleError
91:from .constants import (
ansible_collections/f5networks/f5_modules/plugins/module_utils/common.py
29:from .constants import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_base.py
19:from ._client import (
24:from ._vendor.hcloud import (
30:from ._vendor.hcloud.actions import ActionException
31:from ._version import version
ansible_collections/hetzner/hcloud/plugins/module_utils/_floating_ip.py
6:from ._vendor.hcloud.floating_ips import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_storage_box_snapshot.py
6:from ._vendor.hcloud.storage_boxes import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/metrics/__init__.py
3:from .domain import Metrics, TimeSeries
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/primary_ips/domain.py
13: from .client import BoundPrimaryIP
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/primary_ips/__init__.py
3:from .client import BoundPrimaryIP, PrimaryIPsClient, PrimaryIPsPageResult
4:from .domain import CreatePrimaryIPResponse, PrimaryIP, PrimaryIPProtection
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/placement_groups/domain.py
9: from .client import BoundPlacementGroup
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/placement_groups/client.py
7:from .domain import CreatePlacementGroupResponse, PlacementGroup
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/placement_groups/__init__.py
3:from .client import (
8:from .domain import CreatePlacementGroupResponse, PlacementGroup
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/core/client.py
7:from .domain import BaseDomain
11: from .domain import Meta
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/core/__init__.py
3:from .client import BoundModelBase, ClientEntityBase, ResourceClientBase
4:from .domain import BaseDomain, DomainIdentityMixin, Meta, Pagination
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/zones/domain.py
9: from .client import BoundZone, BoundZoneRRSet
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/primary_ips/client.py
15:from .domain import CreatePrimaryIPResponse, PrimaryIP
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/ssh_keys/client.py
6:from .domain import SSHKey
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/floating_ips/domain.py
12: from .client import BoundFloatingIP
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/zones/__init__.py
3:from .client import (
10:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/floating_ips/__init__.py
3:from .client import (
8:from .domain import CreateFloatingIPResponse, FloatingIP, FloatingIPProtection
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/ssh_keys/__init__.py
3:from .client import BoundSSHKey, SSHKeysClient, SSHKeysPageResult
4:from .domain import SSHKey
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/floating_ips/client.py
15:from .domain import CreateFloatingIPResponse, FloatingIP
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/images/domain.py
10: from .client import BoundImage
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/images/client.py
15:from .domain import Image
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/images/__init__.py
3:from .client import BoundImage, ImagesClient, ImagesPageResult
4:from .domain import CreateImageResponse, Image, ImageProtection
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/server_types/__init__.py
3:from .client import (
8:from .domain import ServerType, ServerTypeLocation
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/zones/client.py
14:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/load_balancer_types/client.py
6:from .domain import LoadBalancerType
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/server_types/client.py
7:from .domain import ServerType, ServerTypeLocation
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/load_balancer_types/__init__.py
3:from .client import (
8:from .domain import LoadBalancerType
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/__init__.py
3:from ._client import (
8:from ._exceptions import APIException, HCloudException
9:from ._version import __version__
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/isos/client.py
6:from .domain import Iso
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/isos/__init__.py
3:from .client import BoundIso, IsosClient, IsosPageResult
4:from .domain import Iso
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/certificates/__init__.py
3:from .client import (
8:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/certificates/domain.py
9: from .client import BoundCertificate
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/certificates/client.py
14:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/rdns/__init__.py
3:from .domain import DNSPtr
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/networks/__init__.py
3:from .client import BoundNetwork, NetworksClient, NetworksPageResult
4:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/locations/__init__.py
3:from .client import BoundLocation, LocationsClient, LocationsPageResult
4:from .domain import Location
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/networks/client.py
14:from .domain import Network, NetworkRoute, NetworkSubnet
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/locations/client.py
6:from .domain import Location
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/networks/domain.py
11: from .client import BoundNetwork
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/_client.py
13:from ._exceptions import APIException
14:from ._version import __version__
15:from .actions import ActionsClient
16:from .certificates import CertificatesClient
17:from .datacenters import DatacentersClient
18:from .firewalls import FirewallsClient
19:from .floating_ips import FloatingIPsClient
20:from .images import ImagesClient
21:from .isos import IsosClient
22:from .load_balancer_types import LoadBalancerTypesClient
23:from .load_balancers import LoadBalancersClient
24:from .locations import LocationsClient
25:from .networks import NetworksClient
26:from .placement_groups import PlacementGroupsClient
27:from .primary_ips import PrimaryIPsClient
28:from .server_types import ServerTypesClient
29:from .servers import ServersClient
30:from .ssh_keys import SSHKeysClient
31:from .storage_box_types import StorageBoxTypesClient
32:from .storage_boxes import StorageBoxesClient
33:from .volumes import VolumesClient
34:from .zones import ZonesClient
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/deprecation/__init__.py
3:from .domain import DeprecationInfo
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/actions/__init__.py
3:from .client import (
10:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/actions/domain.py
9: from .client import BoundAction
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/actions/client.py
8:from .domain import Action, ActionFailedException, ActionStatus, ActionTimeoutException
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/storage_box_types/client.py
6:from .domain import StorageBoxType
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/storage_box_types/__init__.py
3:from .client import (
8:from .domain import StorageBoxType
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/datacenters/client.py
8:from .domain import Datacenter, DatacenterServerTypes
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/volumes/__init__.py
3:from .client import BoundVolume, VolumesClient, VolumesPageResult
4:from .domain import CreateVolumeResponse, Volume, VolumeProtection
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/firewalls/domain.py
10: from .client import BoundFirewall
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/volumes/domain.py
11: from .client import BoundVolume
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/datacenters/__init__.py
3:from .client import (
8:from .domain import Datacenter, DatacenterServerTypes
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/firewalls/__init__.py
3:from .client import BoundFirewall, FirewallsClient, FirewallsPageResult
4:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/helpers/__init__.py
3:from .labels import LabelValidator
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/volumes/client.py
15:from .domain import CreateVolumeResponse, Volume
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/firewalls/client.py
14:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/storage_boxes/__init__.py
3:from .client import (
12:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/servers/__init__.py
3:from .client import BoundServer, ServersClient, ServersPageResult
4:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/storage_boxes/domain.py
11: from .client import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/servers/domain.py
23: from .client import BoundServer
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/load_balancers/client.py
26:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/storage_boxes/client.py
17:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/load_balancers/domain.py
16: from .client import BoundLoadBalancer
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/servers/client.py
32:from .domain import (
59: from .domain import ServerCreatePublicNetwork
ansible_collections/hetzner/hcloud/plugins/module_utils/_vendor/hcloud/load_balancers/__init__.py
3:from .client import (
8:from .domain import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_storage_box_subaccount.py
6:from ._vendor.hcloud.storage_boxes import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_storage_box.py
6:from ._client import client_resource_not_found
7:from ._vendor.hcloud.storage_boxes import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_experimental.py
8:from ._base import AnsibleModule
ansible_collections/hetzner/hcloud/plugins/module_utils/_deprecation.py
11:from ._vendor.hcloud.locations import BoundLocation
12:from ._vendor.hcloud.server_types import BoundServerType, ServerTypeLocation
ansible_collections/hetzner/hcloud/plugins/module_utils/_primary_ip.py
6:from ._vendor.hcloud.primary_ips import (
ansible_collections/hetzner/hcloud/plugins/module_utils/_client.py
12:from ._vendor.hcloud import APIException, Client as ClientBase
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_iscsi_remote_connection_provisioner.py
7: from .vsp_remote_connection_provisioner import VSPRemoteConnectionProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_remote_replication_helper.py
11: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
12: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
23: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
24: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_hur_provisioner.py
14: from .vsp_remote_replication_helper import RemoteReplicationHelperForSVol
33: from .vsp_remote_replication_helper import RemoteReplicationHelperForSVol
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_remote_connection_provisioner.py
6: from .vsp_remote_storage_registration_provisioner import (
15: from .vsp_remote_storage_registration_provisioner import (
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_gad_pair_provisioner.py
27: from .vsp_remote_replication_helper import RemoteReplicationHelperForSVol
55: from .vsp_remote_replication_helper import RemoteReplicationHelperForSVol
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_snapshot_provisioner.py
21: from .vsp_nvme_provisioner import VSPNvmeProvisioner
28: from .vsp_volume_prov import VSPVolumeProvisioner
29: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
30: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
42: from .vsp_volume_prov import VSPVolumeProvisioner
43: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
44: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
45: from .vsp_nvme_provisioner import VSPNvmeProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_resource_group_provisioner.py
12: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
27: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_storage_pool_provisioner.py
10: from .vsp_parity_group_provisioner import VSPParityGroupProvisioner
16: from .vsp_volume_prov import VSPVolumeProvisioner
19: from .vsp_resource_group_provisioner import VSPResourceGroupProvisioner
21: from .vsp_storage_system_provisioner import VSPStorageSystemProvisioner
33: from .vsp_parity_group_provisioner import VSPParityGroupProvisioner
38: from .vsp_volume_prov import VSPVolumeProvisioner
41: from .vsp_resource_group_provisioner import VSPResourceGroupProvisioner
43: from .vsp_storage_system_provisioner import VSPStorageSystemProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_user_group_provisioner.py
10: from .vsp_user_provisioner import VSPUserProvisioner
23: from .vsp_user_provisioner import VSPUserProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_nvme_provisioner.py
19: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
37: from .vsp_storage_port_provisioner import VSPStoragePortProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/sdsb_snapshot_provisioner.py
7: from .sdsb_vps_provisioner import SDSBVpsProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_true_copy_provisioner.py
16: from .vsp_remote_replication_helper import RemoteReplicationHelperForSVol
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_dynamic_pool_provisioner.py
5: from .vsp_storage_system_provisioner import (
14: from .vsp_storage_system_provisioner import (
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_shadow_image_pair_provisioner.py
16: from .vsp_volume_prov import VSPVolumeProvisioner
17: from .vsp_nvme_provisioner import VSPNvmeProvisioner
18: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
37: from .vsp_volume_prov import VSPVolumeProvisioner
38: from .vsp_nvme_provisioner import VSPNvmeProvisioner
39: from .vsp_host_group_provisioner import VSPHostGroupProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/provisioner/vsp_storage_port_provisioner.py
13: from .vsp_uvm_provisioner import VSPUvmProvisioner
22: from .vsp_uvm_provisioner import VSPUvmProvisioner
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/common/hv_exceptions.py
1:from .hv_log import Log
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/common/hv_log.py
19: from .hv_messages import MessageID
20: from .ansible_common import get_ansible_home_dir
21: from .ansible_common_constants import (
32: from .ansible_common import get_ansible_home_dir
260: from .hv_exceptions import HiException
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/common/ansible_common.py
13: from .vsp_constants import PEGASUS_MODELS, DEFAULT_NAME_PREFIX
14: from .hv_constants import TARGET_SUB_DIRECTORY
15: from .ansible_common_constants import (
25: from .hv_constants import TARGET_SUB_DIRECTORY
26: from .vsp_constants import PEGASUS_MODELS, DEFAULT_NAME_PREFIX
27: from .ansible_common_constants import (
146: from .hv_log import Log
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_server_priority_manager_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_quorum_disk_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_license_management_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_true_copy_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
10: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_journal_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_remote_storage_registration_models.py
5: from .common_base_models import SingleBaseClass, BaseDataClass
9: from .common_base_models import SingleBaseClass, BaseDataClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_hur_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
7: from .vsp_true_copy_models import DirectTrueCopyPairInfo, DirectTrueCopyPairInfoList
11: from .common_base_models import BaseDataClass, SingleBaseClass
13: from .vsp_true_copy_models import DirectTrueCopyPairInfo, DirectTrueCopyPairInfoList
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_pav_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/uaig_subscriber_models.py
5: from .common_base_models import BaseDataClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/common/vsp_utils.py
5: from .hv_log import (
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_user_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_one_server_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_host_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
12: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_storage_pool_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_storage_port_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_mp_blade_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_storage_system_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_shadow_image_pair_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_user_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_user_group_models.py
3:from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_dump_log_models.py
4:from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_remote_connection_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_clpr_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_encryption_key_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_user_models.py
3:from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_journal_model.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_one_snapshot_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
11: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_storage_controller_model.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_nvme_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_storage_node_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_snapshot_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_uvm_models.py
5: from .common_base_models import SingleBaseClass, BaseDataClass
7: from .common_base_models import SingleBaseClass, BaseDataClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_port_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
6: from .sdsb_port_auth_models import SDSBPortAuthInfo
7: from .sdsb_chap_user_models import SDSBChapUserInfo
10: from .common_base_models import BaseDataClass, SingleBaseClass
11: from .sdsb_port_auth_models import SDSBPortAuthInfo
12: from .sdsb_chap_user_models import SDSBChapUserInfo
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_event_log_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_job_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_chap_user_models.py
5: from .common_base_models import BaseDataClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_copy_groups_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
9: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_cmd_dev_models.py
5: from .common_base_models import SingleBaseClass
9: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_one_port_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_snapshot_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
7: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_login_message_model.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_compute_node_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_vclone_models.py
5: from .common_base_models import SingleBaseClass
9: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_session_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
7: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_session_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
7: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_parity_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_cluster_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_initial_system_settings_models.py
5: from .common_base_models import SingleBaseClass
7: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_license_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_external_auth_server_models.py
3:from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_remote_path_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_local_copy_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_external_volume_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
9: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_iscsi_target_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
11: from .vsp_host_group_models import LuHostReserve
13: from .common_base_models import BaseDataClass, SingleBaseClass
19: from .vsp_host_group_models import LuHostReserve
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_storage_system_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_gad_pairs_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass, base_dict_converter
13: from .common_base_models import BaseDataClass, SingleBaseClass, base_dict_converter
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_resource_group_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_audit_log_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_storage_pool_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
11: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_volume_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
14: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_snapshot_family_models.py
5: from .common_base_models import SingleBaseClass
9: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_dynamic_pool_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
8: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_volume_models.py
5: from .common_base_models import BaseDataClass, SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/sdsb_vps_models.py
5: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_rg_lock_models.py
5: from .common_base_models import SingleBaseClass
9: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/model/vsp_external_path_group_models.py
5: from .common_base_models import SingleBaseClass
8: from .common_base_models import SingleBaseClass
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/sdsb_user.py
8: from .sdsb_vps_helper import SDSBVpsHelper
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/sdsb_user_group.py
6: from .sdsb_vps_helper import SDSBVpsHelper
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/vsp_hur.py
14: from .vsp_true_copy import DirectTrueCopyInfoExtractor
32: from .vsp_true_copy import DirectTrueCopyInfoExtractor
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/vsp_cmd_dev.py
9: from .vsp_volume import VSPVolumeReconciler, VolumeCommonPropertiesExtractor
20: from .vsp_volume import VSPVolumeReconciler, VolumeCommonPropertiesExtractor
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/sdsb_compute_node.py
15: from .sdsb_vps_helper import SDSBVpsHelper
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/sdsb_volume.py
13: from .sdsb_vps_helper import SDSBVpsHelper
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/reconciler/sdsb_port_auth.py
8: from .sdsb_port import SDSBPortReconciler
16: from .sdsb_port import SDSBPortReconciler
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_storage_system_gateway.py
14: from .gateway_manager import SDSBConnectionManager
29: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/gateway_factory.py
6:from .sdsb_compute_node_gateway import (
9:from .sdsb_volume_gateway import SDSBVolumeDirectGateway
10:from .sdsb_chap_user_gateway import SDSBChapUserDirectGateway
11:from .sdsb_event_logs_gateway import SDSBEventLogsDirectGateway
12:from .sdsb_drives_gateway import SDSBDrivesDirectGateway
13:from .sdsb_fault_domain_gateway import SDSBFaultDomainDirectGateway
14:from .sdsb_control_port_gateway import SDSBControlPortDirectGateway
15:from .sdsb_storage_controller_gateway import SDSBStorageControllerDirectGateway
16:from .sdsb_port_auth_gateway import SDSBPortAuthDirectGateway
17:from .sdsb_port_gateway import SDSBPortDirectGateway
18:from .sdsb_vps_gateway import SDSBVpsDirectGateway
19:from .sdsb_storage_node_gateway import SDSBStorageNodeDirectGateway
20:from .sdsb_storage_pool_gateway import SDSBStoragePoolDirectGateway
21:from .sdsb_cluster_gateway import SDSBClusterGateway
22:from .sdsb_job_gateway import SDSBJobGateway
23:from .sdsb_capacity_mgmt_settings_gateway import SDSBCapacityMgmtSettingGateway
24:from .sdsb_estimated_capacity_gateway import SDSBEstimatedCapacityGateway
25:from .sdsb_remote_iscsi_port_gateway import SDSBRemoteIscsiPortGateway
26:from .sdsb_journal_gateway import SDSBJournalDirectGateway
27:from .sdsb_login_message_gateway import SDSBLoginMessageDirectGateway
28:from .vsp_snapshot_gateway import VSPHtiSnapshotDirectGateway
29:from .vsp_volume import VSPVolumeDirectGateway
30:from .vsp_host_group_gateway import VSPHostGroupDirectGateway
31:from .vsp_shadow_image_pair_gateway import (
34:from .vsp_storage_system_gateway import (
37:from .sdsb_storage_system_gateway import SDSBStorageSystemDirectGateway
38:from .vsp_iscsi_target_gateway import (
41:from .vsp_storage_pool_gateway import (
44:from .vsp_journal_volume_gateway import (
47:from .vsp_parity_group_gateway import (
50:from .vsp_storage_port_gateway import (
53:from .vsp_copy_groups_gateway import VSPCopyGroupsDirectGateway
54:from .vsp_true_copy_gateway import VSPTrueCopyDirectGateway
55:from .vsp_hur_gateway import VSPHurDirectGateway
56:from .vsp_nvme_gateway import VSPOneNvmeSubsystemDirectGateway
57:from .vsp_resource_group_gateway import (
60:from .vsp_user_group_gateway import VSPUserGroupDirectGateway
61:from .vsp_user_gateway import VSPUserDirectGateway
62:from .vsp_gad_pair_gateway import VSPGadPairDirectGateway
63:from .vsp_cmd_dev_gateway import VSPCmdDevDirectGateway
64:from .vsp_rg_lock_gateway import (
67:from .vsp_remote_storage_registration_gw import (
70:from .vsp_quorum_disk_gateway import VSPQuorumDiskDirectGateway
71:from .vsp_remote_connection_gateway import VSPRemoteConnectionDirectGateway
72:from .vsp_external_volume_gateway import VSPExternalVolumeDirectGateway
73:from .vsp_iscsi_remote_connection_gateway import VSPIscsiRemoteConnectionDirectGateway
74:from .vsp_local_copy_group_gateway import (
77:from .vsp_dynamic_pool_gateway import VspDynamicPoolGateway
78:from .vsp_uvm_gateway import VSPUvmGateway
79:from .vsp_clpr_gateway import VSPClprDirectGateway
80:from .vsp_external_parity_group_gateway import VSPExternalParityGroupGateway
81:from .vsp_spm_gateway import VSPSpmGateway
82:from .vsp_storage_system_monitor_gateway import VSPStorageSystemMonitorGateway
83:from .sdsb_cluster_information_gateway import SDSBClusterInformationDirectGateway
84:from .sdsb_user_gateway import SDSBUserGateway
85:from .sdsb_bmc_access_setting_gw import SDSBBmcAccessSettingGateway
86:from .sdsb_software_update_gateway import SDSBSoftwareUpdateGateway
87:from .sdsb_audit_log_setting_gw import SDSBAuditLogSettingGateway
88:from .sdsb_event_log_setting_gw import SDSBEventLogSettingGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_remote_iscsi_port_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_hur_gateway.py
5: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
13: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_storage_controller_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_user_auth_setting_gateway.py
2: from .gateway_manager import SDSBConnectionManager
7: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_volume.py
4: from .gateway_manager import VSPConnectionManager
24: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
46: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_nvme_gateway.py
2: from .gateway_manager import VSPConnectionManager
24: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_one_server_gateway.py
1:from .gateway_manager import VSPConnectionManager
19:from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_dynamic_pool_gateway.py
2: from .gateway_manager import VSPConnectionManager
14: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_port_gateway.py
6: from .gateway_manager import SDSBConnectionManager
14: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_volume_gateway.py
4: from .gateway_manager import SDSBConnectionManager
11: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_parity_group_gateway.py
3: from .gateway_manager import VSPConnectionManager
16: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_storage_system_monitor_gateway.py
3: from .gateway_manager import VSPConnectionManager
10: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
12: from .gateway_manager import VSPConnectionManager
19: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_uvm_gateway.py
5: from .gateway_manager import VSPConnectionManager
16: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_volume_simple_api_gateway.py
2: from .gateway_manager import VSPConnectionManager
22: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
40: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_software_update_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_user_group_gateway.py
3: from .gateway_manager import VSPConnectionManager
11: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_login_message_gateway.py
3: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_pav_gateway.py
3: from .gateway_manager import VSPConnectionManager
8: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_spm_gateway.py
3: from .gateway_manager import VSPConnectionManager
11: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_job_gateway.py
2: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_replication_pairs_gateway.py
6: from .gateway_manager import VSPConnectionManager
16: from .vsp_copy_groups_gateway import VSPCopyGroupsDirectGateway
17: from .vsp_volume import VSPVolumeDirectGateway
20: from .gateway_manager import VSPConnectionManager
30: from .vsp_copy_groups_gateway import VSPCopyGroupsDirectGateway
31: from .vsp_volume import VSPVolumeDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_cluster_information_gateway.py
3: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_journal_gateway.py
5: from .gateway_manager import SDSBConnectionManager
14: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_resource_group_gateway.py
3: from .gateway_manager import VSPConnectionManager
14: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_iscsi_target_gateway.py
5: from .gateway_manager import VSPConnectionManager
28: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_host_group_gateway.py
5: from .gateway_manager import VSPConnectionManager
24: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_rg_lock_gateway.py
2: from .gateway_manager import VSPConnectionManager
6: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_storage_pool_gateway.py
2: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_user_gateway.py
4: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_drives_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_remote_path_group_gateway.py
2: from .gateway_manager import SDSBConnectionManager
11: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_session_gateway.py
2: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_quorum_disk_gateway.py
4: from .gateway_manager import VSPConnectionManager
29: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_bmc_access_setting_gw.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_platform_info_gateway.py
2: from .gateway_manager import SDSBConnectionManager
5: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_snapshots_gateway.py
2: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_snapshot_family_gateway.py
2: from .gateway_manager import VSPConnectionManager
5: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
7: from .gateway_manager import VSPConnectionManager
10: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_shadow_image_pair_gateway.py
6: from .gateway_manager import VSPConnectionManager
25: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_estimated_capacity_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_session_manager.py
15: # from .ansible_url import open_url
22: # from .ansible_url import open_url
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_storage_port_gateway.py
3: from .gateway_manager import VSPConnectionManager
15: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_gad_pair_gateway.py
4: from .gateway_manager import VSPConnectionManager
11: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
13: from .gateway_manager import VSPConnectionManager
20: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_initial_system_settings_gateway.py
5: from .gateway_manager import VSPConnectionManager
19: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_session_gateway.py
2: from .vsp_session_manager import SessionManager
10: from .vsp_session_manager import SessionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_port_auth_gateway.py
8: from .gateway_manager import SDSBConnectionManager
18: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_user_group_gateway.py
4: from .gateway_manager import SDSBConnectionManager
9: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_user_gateway.py
2: from .gateway_manager import VSPConnectionManager
10: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_ticket_management_gateway.py
2: from .gateway_manager import SDSBConnectionManager
6: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_event_log_setting_gw.py
3: from .gateway_manager import SDSBConnectionManager
16: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_mp_blade_gateway.py
2: from .gateway_manager import VSPConnectionManager
9: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_external_auth_server_gateway.py
3: from .gateway_manager import SDSBConnectionManager
12: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_storage_pool_gateway.py
3: from .gateway_manager import VSPConnectionManager
17: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_external_volume_gateway.py
4: from .gateway_manager import VSPConnectionManager
35: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_journal_volume_gateway.py
3: from .gateway_manager import VSPConnectionManager
17: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/gateway_manager.py
19: from .ansible_url import open_url
20: from .vsp_session_manager import SessionManager
27: from .ansible_url import open_url
28: from .vsp_session_manager import SessionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_remote_connection_gateway.py
2: from .gateway_manager import VSPConnectionManager
13: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_external_parity_group_gateway.py
2: from .gateway_manager import VSPConnectionManager
5: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
11: from .gateway_manager import VSPConnectionManager
14: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_compute_node_gateway.py
11: from .gateway_manager import SDSBConnectionManager
25: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_audit_log_setting_gw.py
2: from .gateway_manager import SDSBConnectionManager
12: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_local_copy_group_gateway.py
2: from .gateway_manager import VSPConnectionManager
10: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
12: from .gateway_manager import VSPConnectionManager
20: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_chap_user_gateway.py
9: from .gateway_manager import SDSBConnectionManager
21: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_snapshot_gateway.py
5: from .gateway_manager import VSPConnectionManager
16: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
19: from .gateway_manager import VSPConnectionManager
30: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_remote_copy_groups_gateway.py
4: from .gateway_manager import VSPConnectionManager
8: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_fault_domain_gateway.py
3: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_encryption_settings_gateway.py
2: from .gateway_manager import SDSBConnectionManager
9: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_copy_groups_gateway.py
6: from .gateway_manager import VSPConnectionManager
15: from .vsp_volume import VSPVolumeDirectGateway
22: from .gateway_manager import VSPConnectionManager
31: from .vsp_volume import VSPVolumeDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_cmd_dev_gateway.py
4: from .gateway_manager import VSPConnectionManager
7: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
9: from .gateway_manager import VSPConnectionManager
12: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_storage_system_gateway.py
30: from .gateway_manager import VSPConnectionManager
58: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_storage_node_gateway.py
5: from .gateway_manager import SDSBConnectionManager
13: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_one_snapshot_gateway.py
2: from .gateway_manager import VSPConnectionManager
12: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
21: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_clpr_gateway.py
2: from .gateway_manager import VSPConnectionManager
9: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
11: from .gateway_manager import VSPConnectionManager
18: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_encryption_key_gateway.py
2: from .gateway_manager import SDSBConnectionManager
13: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_storage_cluster_mgmt_gateway.py
1:from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_event_logs_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_dump_log_gateway.py
4: from .gateway_manager import SDSBConnectionManager
14: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_vps_gateway.py
6: from .gateway_manager import SDSBConnectionManager
15: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_true_copy_gateway.py
5: from .gateway_manager import VSPConnectionManager
6: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
14: from .gateway_manager import VSPConnectionManager
15: from .vsp_replication_pairs_gateway import VSPReplicationPairsDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_one_port_gateway.py
1:from .gateway_manager import VSPConnectionManager
13:from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_control_port_gateway.py
3: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_iscsi_remote_connection_gateway.py
2: from .gateway_manager import VSPConnectionManager
13: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_vclone_gateway.py
2: from .gateway_manager import VSPConnectionManager
5: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
7: from .gateway_manager import VSPConnectionManager
10: from .vsp_storage_system_gateway import VSPStorageSystemDirectGateway
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_cluster_gateway.py
2: from .gateway_manager import SDSBConnectionManager
7: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_license_gateway.py
4: from .gateway_manager import SDSBConnectionManager
10: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/sdsb_capacity_mgmt_settings_gateway.py
2: from .gateway_manager import SDSBConnectionManager
8: from .gateway_manager import SDSBConnectionManager
ansible_collections/hitachivantara/vspone_block/plugins/module_utils/gateway/vsp_remote_storage_registration_gw.py
2: from .gateway_manager import VSPConnectionManager
11: from .gateway_manager import VSPConnectionManager
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/kmip_servers.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/user_buckets.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/storage_fault_domains.py
1:from .gateway_oo import (
14:from .common_msg_catalog import (
17:from .storage_fault_domain_msg_catalog import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/storage_fault_domain_params_oo.py
1:from .storage_fault_domain_msg_catalog import StorageFaultDomainMsgCatalog as SFDMC
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/params_oo.py
2:from .storage_class_msg_catalog import StorageClassMsgCatalog as SCMCA
3:from .user_buckets_msg_catalog import UserBucketsMsgCatalog as UBMC
4:from .job_msg_catalog import JobMsgCatalog as JOBMCA
5:from .serial_number_msg_catalog import SerialNumberMsgCatalog as SERNUMMCA
6:from .s3_encryption_msg_catalog import S3EncryptionMsgCatalog as S3EMC
7:from .storage_components_msg_catalog import StorageComponentMsgCatalog as SCOMPMCA
11:from .certificate_msg_catalog import CertificateMsgCatalog as CMCA
12:from .users_msg_catalog import UsersMsgCatalog as UMC
13:from .kmip_msg_catalog import KmipMsgCatalog as KMC
14:from .license_msg_catalog import LicenseMsgCatalog as LMC
15:from .jobs_msg_catalog import JobsMsgCatalog as JMS
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/events.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/users.py
2:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/region.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/job.py
1:from .gateway_oo import (
13:from .jobs import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/galaxy.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/storage_classes.py
2:from .gateway_oo import (
17:from .common_msg_catalog import (
20:from .storage_class_msg_catalog import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/serial_number.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/gateway_oo.py
11:from .ansible_url import open_url as open_telemetry
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/licenses.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/jobs.py
1:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/certificates.py
2:from .gateway_oo import (
14:from .common_msg_catalog import (
17:from .certificate_msg_catalog import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/common/ansible_common.py
2:from .ansible_common_constants import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/s3_encryption.py
2:from .gateway_oo import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/common/hv_utilities.py
4:from .hv_log import (Log)
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/oneobject_node/storage_components.py
2:from .gateway_oo import (
17:from .storage_components_msg_catalog import (
ansible_collections/hitachivantara/vspone_object/plugins/module_utils/common/hv_log.py
18: from .hv_messages import MessageID
19: from .hv_constants import TARGET_SUB_DIRECTORY
20: from .ansible_common_constants import (
ansible_collections/kubernetes/core/plugins/module_utils/version.py
18:from ._version import LooseVersion # noqa: F401
ansible_collections/ravendb/ravendb/plugins/module_utils/core/client.py
10:from .deps import require_ravendb
ansible_collections/vmware/vmware/plugins/module_utils/vm/objects/_cdrom.py
21:from ._abstract import AbstractVsphereObject
ansible_collections/vmware/vmware/plugins/module_utils/vm/objects/_controllers.py
16:from ._abstract import AbstractVsphereObject
ansible_collections/vmware/vmware/plugins/module_utils/vm/objects/_nvdimm.py
16:from ._abstract import AbstractVsphereObject
ansible_collections/vmware/vmware/plugins/module_utils/vm/objects/_disk.py
21:from ._abstract import AbstractVsphereObject
ansible_collections/vmware/vmware/plugins/module_utils/vm/objects/_network_adapter.py
28:from ._abstract import AbstractVsphereObject
ansible_collections/vultr/cloud/plugins/module_utils/common_instance.py
11:from .vultr_v2 import AnsibleVultrThere was a problem hiding this comment.
but _fix_collection_relative_imports() still only handles from ..module_utils. So question reinstated: Why have you made MARKER fire on e.g. from .foo import bar, when the new handler only deals with from ..module_utils <...>?
There was a problem hiding this comment.
Sorry. I had a little help from Copilot. I didn't catch that the replacement didn't make sense. I adjusted the code so it now resolves the package path correctly instead of just replacing ..module_utils.
And yes, the idea is, that it resolves all relative imports:
from ..something import ...from .something import ...from . import ...
I'd rather have a whole solution instead of patching things each time, some collection uses relative imports and stops working. I hope you support that.
There was a problem hiding this comment.
the idea is, that it resolves all relative imports
In that case, it doesn't handle 3 or more relative levels (from ...foo import bar), which there are cases of in a default Ansible install.
Edit: many cases in various module_utils. Exactly one case in a module shipped with Ansible 13.x
➜ mitogen git:(test-collections) ✗ ag --literal 'from ...' .venv/lib/python3.14/site-packages/ansible/modules .venv/lib/python3.14/site-packages/ansible_collections/*/*/plugins/modules
.venv/lib/python3.14/site-packages/ansible_collections/community/hashi_vault/plugins/modules/vault_login.py
119:from ...plugins.module_utils._hashi_vault_module import HashiVaultModule
120:from ...plugins.module_utils._hashi_vault_common import HashiVaultValueErrorThere was a problem hiding this comment.
On closer investigation, it may make more sense to rip out ansible_mitogen.planner.NewStylePlanner.MARKER and use ansible.executor.module_common.NEW_STYLE_PYTHON_MODULE_RE instead.
| b"from ..module_utils.basic import AnsibleModule", | ||
| b"from ansible.module_utils.basic import AnsibleModule" |
There was a problem hiding this comment.
Note to self: there's pre-existing override for a specific instance of an explicit-relative import.
There was a problem hiding this comment.
That one is applied before, I expect, that that it is applied, as before.
There was a problem hiding this comment.
I'm not doubting that. The comment really is a note to myself, it's been a long time since I last dug into this file.
There was a problem hiding this comment.
My current thinking is if this PR is to be a superset of _fix_py35(), then it should replace it. I don't currently see a good reason to keep both.
Replace dots with correct module path when resolving relative imports.
The `r` prefix for regular expressions is not supported in Python 2.x
|
|
||
| return absolute_package_name | ||
|
|
||
| pattern = re.compile(b'from (\.\.?)\s?(\w+)') |
There was a problem hiding this comment.
This needs to be a raw byte-string for the backslashed characters, as written.
moreati
left a comment
There was a problem hiding this comment.
Overall this PR is lacking
- Changelog entry
- Test coverage coverage of any new/fixed functionality
https://github.com/mitogen-hq/mitogen/blob/master/tests/ansible/regression/issue_1477__task_warnings_persist.yml and https://github.com/mitogen-hq/mitogen/blob/master/tests/ansible/lib/modules/test_warnings.py might serve as starting points for tests.
|
I'm experimenting with https://github.com/moreati/ansible-test_artifacts, it contains a |
| module_source = invocation.get_module_source() | ||
| _fix_py35(invocation, module_source) | ||
| _fix_dnf(invocation, module_source) | ||
| _fix_collection_relative_imports(invocation, module_source) |
There was a problem hiding this comment.
Note to self: I think (80% confidence) these fixup functions only handle Ansible modules, in other words they don't process the contents of module_utils files. That's a pre-existing limitatation.
TIL: Some Ansible collections contain plugins/plugin_utils. I don't think this is a standardised collection dir, more a convention used by some authors to share code between plugins con the controller without exposing it to targets/modules. Seem to be more common in Microsoft collections
➜ site-packages git:(master) ✗ ag 'from \.\.\.' ansible_collections
ansible_collections/microsoft/ad/plugins/plugin_utils/_ldap/schema.py
18:from ...filter.ldap_converters import as_guid, as_sid
Refs
Use
NewStylePlannerfor collection modules with relative imports and replace the relative imports with absolute imports.Fixes #896