From eb1c4410e83708c1b3f2e138bfbc7a307bb02250 Mon Sep 17 00:00:00 2001 From: Jakub Kadlcik Date: Sat, 28 May 2022 08:55:39 -0400 Subject: [PATCH] copr: make the libvirt-list --connection optional --- .../copr/backend/files/provision/libvirt-list | 10 +++- .../backend/templates/provision/helpers.py | 53 ++++++++++++++++++ .../backend/templates/provision/libvirt-new | 56 +------------------ 3 files changed, 61 insertions(+), 58 deletions(-) create mode 100644 roles/copr/backend/templates/provision/helpers.py diff --git a/roles/copr/backend/files/provision/libvirt-list b/roles/copr/backend/files/provision/libvirt-list index 510144d897..f136803036 100755 --- a/roles/copr/backend/files/provision/libvirt-list +++ b/roles/copr/backend/files/provision/libvirt-list @@ -8,20 +8,24 @@ LibVirt hypervisor. import argparse import sys - import libvirt +from helpers import get_hv_identification_from_pool_id + def _get_parser(): parser = argparse.ArgumentParser() - parser.add_argument("--connection", required=True) + parser.add_argument("--connection", required=False) parser.add_argument("--pool", required=True) return parser def _main(): args = _get_parser().parse_args() + connection = args.connection if args.connection else \ + get_hv_identification_from_pool_id(args.pool)[1] + try: - conn = libvirt.openReadOnly(args.connection) + conn = libvirt.openReadOnly(connection) except libvirt.libvirtError: print('Failed to open connection to the hypervisor') sys.exit(1) diff --git a/roles/copr/backend/templates/provision/helpers.py b/roles/copr/backend/templates/provision/helpers.py new file mode 100644 index 0000000000..35fd7d3945 --- /dev/null +++ b/roles/copr/backend/templates/provision/helpers.py @@ -0,0 +1,53 @@ +def get_hv_identification_from_pool_id(pool_id): + """ Get unique ID of the hypervisor """ + if pool_id.startswith("copr_hv_x86_64_01"): + return ( + 0, + "qemu+ssh://copr@vmhost-x86-copr01" + ".rdu-cc.fedoraproject.org/system", + "x86_64", + ) + if pool_id.startswith("copr_hv_x86_64_02"): + return ( + 1, + "qemu+ssh://copr@vmhost-x86-copr02" + ".rdu-cc.fedoraproject.org/system", + "x86_64", + ) + if pool_id.startswith("copr_hv_x86_64_03"): + return ( + 2, + "qemu+ssh://copr@vmhost-x86-copr03" + ".rdu-cc.fedoraproject.org/system", + "x86_64", + ) + if pool_id.startswith("copr_hv_x86_64_04"): + return ( + 3, + "qemu+ssh://copr@vmhost-x86-copr04" + ".rdu-cc.fedoraproject.org/system", + "x86_64", + ) + if pool_id.startswith("copr_hv_ppc64le_01"): + return ( + 4, + "qemu+ssh://copr@vmhost-p08-copr01" + ".rdu-cc.fedoraproject.org/system", + "ppc64le", + ) + if pool_id.startswith("copr_hv_ppc64le_02"): + return ( + 5, + "qemu+ssh://copr@vmhost-p08-copr02" + ".rdu-cc.fedoraproject.org/system", + "ppc64le", + ) + + if pool_id.startswith("copr_p09_01"): + return ( + 6, + "qemu+ssh://copr@vmhost-p09-copr01" + ".rdu-cc.fedoraproject.org/system", + "ppc64le", + ) + raise Exception("can't convert pool_id to hv ID") diff --git a/roles/copr/backend/templates/provision/libvirt-new b/roles/copr/backend/templates/provision/libvirt-new index cda8690170..053c635423 100755 --- a/roles/copr/backend/templates/provision/libvirt-new +++ b/roles/copr/backend/templates/provision/libvirt-new @@ -16,6 +16,7 @@ import shutil import time import pipes import argparse +from helpers import get_hv_identification_from_pool_id DEFAULT_POOL = 'images' @@ -25,61 +26,6 @@ VOLUMES = { } -def get_hv_identification_from_pool_id(pool_id): - """ Get unique ID of the hypervisor """ - if pool_id.startswith("copr_hv_x86_64_01"): - return ( - 0, - "qemu+ssh://copr@vmhost-x86-copr01" - ".rdu-cc.fedoraproject.org/system", - "x86_64", - ) - if pool_id.startswith("copr_hv_x86_64_02"): - return ( - 1, - "qemu+ssh://copr@vmhost-x86-copr02" - ".rdu-cc.fedoraproject.org/system", - "x86_64", - ) - if pool_id.startswith("copr_hv_x86_64_03"): - return ( - 2, - "qemu+ssh://copr@vmhost-x86-copr03" - ".rdu-cc.fedoraproject.org/system", - "x86_64", - ) - if pool_id.startswith("copr_hv_x86_64_04"): - return ( - 3, - "qemu+ssh://copr@vmhost-x86-copr04" - ".rdu-cc.fedoraproject.org/system", - "x86_64", - ) - if pool_id.startswith("copr_hv_ppc64le_01"): - return ( - 4, - "qemu+ssh://copr@vmhost-p08-copr01" - ".rdu-cc.fedoraproject.org/system", - "ppc64le", - ) - if pool_id.startswith("copr_hv_ppc64le_02"): - return ( - 5, - "qemu+ssh://copr@vmhost-p08-copr02" - ".rdu-cc.fedoraproject.org/system", - "ppc64le", - ) - - if pool_id.startswith("copr_p09_01"): - return ( - 6, - "qemu+ssh://copr@vmhost-p09-copr01" - ".rdu-cc.fedoraproject.org/system", - "ppc64le", - ) - raise Exception("can't convert pool_id to hv ID") - - class ConfigFile: def __init__(self, name, contents): self.name = name