From: Cleber Rosa Date: Wed, 3 Feb 2021 17:23:53 +0000 (-0500) Subject: Acceptance Tests: set up existing ssh keys by default X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=c0c5a7f18e623b8f6eb7a9ccebdccdc56db2cec7;p=qemu.git Acceptance Tests: set up existing ssh keys by default 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 Message-Id: <20210203172357.1422425-19-crosa@redhat.com> Reviewed-by: Willian Rampazzo Reviewed-by: Marc-André Lureau [marcandre: fix typos in commit message] Signed-off-by: Cleber Rosa --- diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py index 51e9055c98..df167b142c 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 @@ class LinuxTest(Test): 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')