summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Watkins <oddbloke@ubuntu.com>2021-01-06 16:19:15 -0500
committerGitHub <noreply@github.com>2021-01-06 16:19:15 -0500
commite5c67478136e1942a981ee18785ceb26579d0041 (patch)
treecfe45c5bbac1c30faaa4b859f92de077147ae4f8
parent48b2c5f16bd4ef754fef137ea19894908d4bf1db (diff)
downloadvyos-cloud-init-e5c67478136e1942a981ee18785ceb26579d0041.tar.gz
vyos-cloud-init-e5c67478136e1942a981ee18785ceb26579d0041.zip
integration_tests: add SSH key selection settings (#754)
This introduces PUBLIC_SSH_KEY, to configure what public SSH key should be used to access systems under test, and KEYPAIR_NAME, to configure the name used in clouds for that SSH key (or the default SSH key, in PUBLIC_SSH_KEY's absence).
-rw-r--r--tests/integration_tests/clouds.py9
-rw-r--r--tests/integration_tests/integration_settings.py12
2 files changed, 21 insertions, 0 deletions
diff --git a/tests/integration_tests/clouds.py b/tests/integration_tests/clouds.py
index 9f6a6380..8ae20442 100644
--- a/tests/integration_tests/clouds.py
+++ b/tests/integration_tests/clouds.py
@@ -91,6 +91,15 @@ class IntegrationCloud(ABC):
def __init__(self, settings=integration_settings):
self.settings = settings
self.cloud_instance = self._get_cloud_instance()
+ if settings.PUBLIC_SSH_KEY is not None:
+ # If we have a non-default key, use it.
+ self.cloud_instance.use_key(
+ settings.PUBLIC_SSH_KEY, name=settings.KEYPAIR_NAME
+ )
+ elif settings.KEYPAIR_NAME is not None:
+ # Even if we're using the default key, it may still have a
+ # different name in the clouds, so we need to set it separately.
+ self.cloud_instance.key_pair.name = settings.KEYPAIR_NAME
self._released_image_id = self._get_initial_image()
self.snapshot_id = None
diff --git a/tests/integration_tests/integration_settings.py b/tests/integration_tests/integration_settings.py
index d7e02f04..6cabf3d8 100644
--- a/tests/integration_tests/integration_settings.py
+++ b/tests/integration_tests/integration_settings.py
@@ -76,6 +76,18 @@ COLLECT_LOGS = 'ON_ERROR'
LOCAL_LOG_PATH = '/tmp/cloud_init_test_logs'
##################################################################
+# SSH KEY SETTINGS
+##################################################################
+
+# A path to the public SSH key to use for test runs. (Defaults to pycloudlib's
+# default behaviour, using ~/.ssh/id_rsa.pub.)
+PUBLIC_SSH_KEY = None
+
+# For clouds which use named keypairs for SSH connection, the name that is used
+# for the keypair. (Defaults to pycloudlib's default behaviour.)
+KEYPAIR_NAME = None
+
+##################################################################
# GCE SPECIFIC SETTINGS
##################################################################
# Required for GCE