[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 9/9] Acceptance Tests: set up existing ssh keys by default
From: |
Cleber Rosa |
Subject: |
[PULL 9/9] Acceptance Tests: set up existing ssh keys by default |
Date: |
Mon, 15 Feb 2021 23:57:05 -0500 |
It's questionable whether it's necessary to create one brand new pair
for each test. It's not questionable that it takes less time and
resources to just use the keys available at "tests/keys" that exist
for that exact reason.
If a location for the public key is not given explicitly, the
LinuxTest will now set up the existing pair of keys as the default.
This removes the need for a lot of boilerplate code.
To avoid the ssh client from erroring on permission issues, a
directory with restrictive permissions is created for the private key.
This should still be a lot cheaper than creating a new key.
Signed-off-by: Cleber Rosa <crosa@redhat.com>
Message-Id: <20210203172357.1422425-19-crosa@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
[marcandre: fix typos in commit message]
Signed-off-by: Cleber Rosa <crosa@redhat.com>
---
tests/acceptance/avocado_qemu/__init__.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tests/acceptance/avocado_qemu/__init__.py
b/tests/acceptance/avocado_qemu/__init__.py
index 51e9055c986..df167b142cc 100644
--- a/tests/acceptance/avocado_qemu/__init__.py
+++ b/tests/acceptance/avocado_qemu/__init__.py
@@ -10,6 +10,7 @@
import logging
import os
+import shutil
import sys
import uuid
import tempfile
@@ -254,8 +255,21 @@ def setUp(self, ssh_pubkey=None):
self.vm.add_args('-smp', '2')
self.vm.add_args('-m', '1024')
self.set_up_boot()
+ if ssh_pubkey is None:
+ ssh_pubkey, self.ssh_key = self.set_up_existing_ssh_keys()
self.set_up_cloudinit(ssh_pubkey)
+ def set_up_existing_ssh_keys(self):
+ ssh_public_key = os.path.join(SOURCE_DIR, 'tests', 'keys',
'id_rsa.pub')
+ source_private_key = os.path.join(SOURCE_DIR, 'tests', 'keys',
'id_rsa')
+ ssh_dir = os.path.join(self.workdir, '.ssh')
+ os.mkdir(ssh_dir, mode=0o700)
+ ssh_private_key = os.path.join(ssh_dir,
+ os.path.basename(source_private_key))
+ shutil.copyfile(source_private_key, ssh_private_key)
+ os.chmod(ssh_private_key, 0o600)
+ return (ssh_public_key, ssh_private_key)
+
def download_boot(self):
self.log.debug('Looking for and selecting a qemu-img binary to be '
'used to create the bootable snapshot image')
--
2.26.2
- [PULL 0/9] Acceptance Tests and Python libs patches for 2021-02-15, Cleber Rosa, 2021/02/15
- [PULL 2/9] virtiofs_submounts.py test: Note on vmlinuz param, Cleber Rosa, 2021/02/15
- [PULL 1/9] Acceptance Tests: bump Avocado version requirement to 85.0, Cleber Rosa, 2021/02/15
- [PULL 3/9] Python: close the log file kept by QEMUMachine before reading it, Cleber Rosa, 2021/02/15
- [PULL 5/9] maint: Tell git that *.py files should use python diff hunks, Cleber Rosa, 2021/02/15
- [PULL 4/9] tests/acceptance/virtio-gpu.py: preserve virtio-user-gpu log, Cleber Rosa, 2021/02/15
- [PULL 6/9] Acceptance Tests: introduce LinuxTest base class, Cleber Rosa, 2021/02/15
- [PULL 7/9] Acceptance Tests: introduce method for requiring an accelerator, Cleber Rosa, 2021/02/15
- [PULL 8/9] Acceptance Tests: fix population of public key in cloudinit image, Cleber Rosa, 2021/02/15
- [PULL 9/9] Acceptance Tests: set up existing ssh keys by default,
Cleber Rosa <=
- Re: [PULL 0/9] Acceptance Tests and Python libs patches for 2021-02-15, Peter Maydell, 2021/02/16