diff options
author | PMR <pmr@pmr-lander> | 2021-05-12 09:05:34 +0000 |
---|---|---|
committer | PMR <pmr@pmr-lander> | 2021-05-12 09:05:34 +0000 |
commit | 5a17cac9dc3b4b940cac95dd2978c3c8166a9e59 (patch) | |
tree | 6330a4d67d4462d36990966fe351476a718a493c | |
parent | 1bfa4912d9529d113773ab09d8b54a440f57ea13 (diff) | |
parent | 407ec80d7c3955eb45536863f8b7f0093db63c2f (diff) |
Merge #402592 from ~jocave/plainbox-provider-checkbox:verify-lxd-for-core
-rwxr-xr-x | bin/virtualization.py | 36 | ||||
-rw-r--r-- | units/virtualization/test-plan.pxu | 19 |
2 files changed, 50 insertions, 5 deletions
diff --git a/bin/virtualization.py b/bin/virtualization.py index 2f17d32..237f61d 100755 --- a/bin/virtualization.py +++ b/bin/virtualization.py @@ -26,7 +26,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. from argparse import ArgumentParser import os import logging -import lsb_release import requests import shlex from subprocess import ( @@ -125,6 +124,33 @@ QEMU_ARCH_CONFIG = { } +def get_release_to_test(): + try: + import distro + if distro.id() == 'ubuntu-core': + return '{}.04'.format(distro.version()) + return distro.version() + except (ImportError, CalledProcessError): + import lsb_release + return lsb_release.get_distro_information()["RELEASE"] + + +def get_codename_to_test(): + try: + import distro + if distro.id() == 'ubuntu-core': + codename = 'focal' + if distro.version() == '18': + codename = 'bionic' + elif distro.version() == '16': + codename = 'xenial' + return codename + return distro.codename() + except (ImportError, CalledProcessError): + import lsb_release + lsb_release.get_distro_information()["CODENAME"] + + class QemuRunner(object): def __init__(self, arch): self.arch = arch @@ -197,7 +223,7 @@ class KVMTest(object): self.arch = check_output(['dpkg', '--print-architecture'], universal_newlines=True).strip() self.qemu_config = QEMU_ARCH_CONFIG[self.arch] - self.release = lsb_release.get_distro_information()["CODENAME"] + self.release = get_codename_to_test() def url_to_path(self, image_path): """ @@ -287,7 +313,7 @@ class KVMTest(object): url.path == '' or not (url.path.endswith(".img") or url.path.endswith(".tar.gz")) - ): + ): # If we have a relative URL (local copies of official images) # http://192.168.0.1/ or http://192.168.0.1/images/ cloud_iso = _construct_filename() @@ -535,7 +561,7 @@ class UVTKVMTest(object): def __init__(self, image=None): self.image = image - self.release = lsb_release.get_distro_information()["CODENAME"] + self.release = get_codename_to_test() self.arch = check_output(['dpkg', '--print-architecture'], universal_newlines=True).strip() self.name = tempfile.mktemp()[5:] @@ -664,7 +690,7 @@ class LXDTest(object): self.name = 'testbed' self.image_alias = uuid4().hex self.default_remote = "ubuntu:" - self.os_version = lsb_release.get_distro_information()["RELEASE"] + self.os_version = get_release_to_test() def run_command(self, cmd): task = RunCommand(cmd) diff --git a/units/virtualization/test-plan.pxu b/units/virtualization/test-plan.pxu new file mode 100644 index 0000000..16f4c73 --- /dev/null +++ b/units/virtualization/test-plan.pxu @@ -0,0 +1,19 @@ +id: virtualization-full +unit: test plan +_name: Virtualization tests +include: +nested_part: + virtualization-manual + virtualization-automated + +id: virtualization-manual +unit: test plan +_name: Manual virtualization tests +include: + +id: virtualization-automated +unit: test plan +_name: Automated virtualization tests +include: + virtualization/kvm_check_vm + virtualization/verify_lxd \ No newline at end of file |