summaryrefslogtreecommitdiffstats
path: root/test/lib/ansible_test/_internal/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/lib/ansible_test/_internal/util.py')
-rw-r--r--test/lib/ansible_test/_internal/util.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/lib/ansible_test/_internal/util.py b/test/lib/ansible_test/_internal/util.py
index 2b0218fb38..4a6ddfa1da 100644
--- a/test/lib/ansible_test/_internal/util.py
+++ b/test/lib/ansible_test/_internal/util.py
@@ -64,6 +64,7 @@ except AttributeError:
DOCKER_COMPLETION = {} # type: t.Dict[str, t.Dict[str, str]]
REMOTE_COMPLETION = {} # type: t.Dict[str, t.Dict[str, str]]
+NETWORK_COMPLETION = {} # type: t.Dict[str, t.Dict[str, str]]
PYTHON_PATHS = {} # type: t.Dict[str, str]
try:
@@ -134,6 +135,13 @@ def get_remote_completion():
return get_parameterized_completion(REMOTE_COMPLETION, 'remote')
+def get_network_completion():
+ """
+ :rtype: dict[str, dict[str, str]]
+ """
+ return get_parameterized_completion(NETWORK_COMPLETION, 'network')
+
+
def get_parameterized_completion(cache, name):
"""
:type cache: dict[str, dict[str, str]]
@@ -743,6 +751,30 @@ class MissingEnvironmentVariable(ApplicationError):
self.name = name
+class NetworkPlatformSettings:
+ """Settings required for provisioning a network platform."""
+ def __init__(self, collection, inventory_vars): # type: (str, t.Type[str, str]) -> None
+ self.collection = collection
+ self.inventory_vars = inventory_vars
+
+
+def get_network_settings(args, platform, version): # type: (NetworkIntegrationConfig, str, str) -> NetworkPlatformSettings
+ """Returns settings for the given network platform and version."""
+ platform_version = '%s/%s' % (platform, version)
+ completion = get_network_completion().get(platform_version, {})
+ collection = args.platform_collection.get(platform, completion.get('collection'))
+
+ settings = NetworkPlatformSettings(
+ collection,
+ dict(
+ ansible_connection=args.platform_connection.get(platform, completion.get('connection')),
+ ansible_network_os='%s.%s' % (collection, platform) if collection else platform,
+ )
+ )
+
+ return settings
+
+
def docker_qualify_image(name):
"""
:type name: str