From e434f11ac7df31eb4d6755445a9c3bc0b620219e Mon Sep 17 00:00:00 2001 From: Gabriel Becker Date: Mon, 20 Jan 2025 14:26:28 +0100 Subject: [PATCH 1/4] install_vm: Add default osinfo for RHEL distro. rhel8-unknown should work for RHEL8+ installations. --- tests/install_vm.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/install_vm.py b/tests/install_vm.py index f48cef18282..81b9256d213 100755 --- a/tests/install_vm.py +++ b/tests/install_vm.py @@ -154,7 +154,7 @@ def parse_args(): "--osinfo", dest="osinfo", default=None, - help="Specify OSInfo for virt-install command.", + help="Specify OSInfo for virt-install command ('rhel8-unknown' is used by default when '--distro' has any of the RHEL available selected). Run 'virt-install --osinfo list' to get a list of available options", ) return parser.parse_args() @@ -327,6 +327,10 @@ def get_virt_install_command(data): if data.osinfo: command.append(f'--osinfo={data.osinfo}') + else: + if 'rhel' in data.distro: + command.append(f'--osinfo=rhel8-unknown') + command.extend(join_extented_opt("--boot", ",", boot_opts)) command.extend(join_extented_opt("--extra-args", " ", extra_args_opts)) From bf9f9d821490ea187e3db33905238ca59499c224 Mon Sep 17 00:00:00 2001 From: Gabriel Becker Date: Tue, 21 Jan 2025 11:35:58 +0100 Subject: [PATCH 2/4] Use RawTextHelpFormatter in the install_vm script when parsing args. The help text will be truncated no matter how long they are. Improve legibility. --- tests/install_vm.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/install_vm.py b/tests/install_vm.py index 81b9256d213..e78db43decd 100755 --- a/tests/install_vm.py +++ b/tests/install_vm.py @@ -34,8 +34,16 @@ def path_from_tests(path): def parse_args(): + import textwrap + osinfo_epilog = textwrap.dedent(r""" + --osinfo details: 'rhel8-unknown' is used by default when '--distro' has any of + the RHEL available selected). Run 'virt-install --osinfo list' + to get a list of available options + """) parser = argparse.ArgumentParser( - formatter_class=argparse.ArgumentDefaultsHelpFormatter, + formatter_class=argparse.RawTextHelpFormatter, + # formatter_class=argparse.ArgumentDefaultsHelpFormatter, + epilog=osinfo_epilog, ) parser.add_argument( @@ -154,7 +162,7 @@ def parse_args(): "--osinfo", dest="osinfo", default=None, - help="Specify OSInfo for virt-install command ('rhel8-unknown' is used by default when '--distro' has any of the RHEL available selected). Run 'virt-install --osinfo list' to get a list of available options", + help="Specify OSInfo for virt-install command", ) return parser.parse_args() From d8b75fa61b516349aa54a842525c06a43d84dadf Mon Sep 17 00:00:00 2001 From: Gabriel Becker Date: Wed, 22 Jan 2025 15:53:37 +0100 Subject: [PATCH 3/4] Expand install_vm with default osinfo for unreleased distros. Whenever a distro is being develop there might be a need to install this distro and virt-install requires an osinfo that in this case cannot be detected because the distro has not been released yet. Usually the previous major version osinfo data works just fine for the installation to succeed. --- tests/install_vm.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/install_vm.py b/tests/install_vm.py index e78db43decd..dd69bb807ec 100755 --- a/tests/install_vm.py +++ b/tests/install_vm.py @@ -14,9 +14,14 @@ "centos9", "rhel8", "rhel9", - "rhel10", ] +# put here any unreleased distro in development that needs to be tested +# and any working osinfo known to be used by default when installating it +UNRELEASED_DISTROS_AND_OSINFO = { + "rhel10": "rhel9-unknown" +} + DISTRO_URL = { "fedora": "https://download.fedoraproject.org/pub/fedora/linux/releases/41/Everything/x86_64/os", @@ -37,7 +42,7 @@ def parse_args(): import textwrap osinfo_epilog = textwrap.dedent(r""" --osinfo details: 'rhel8-unknown' is used by default when '--distro' has any of - the RHEL available selected). Run 'virt-install --osinfo list' + the RHEL available selected. Run 'virt-install --osinfo list' to get a list of available options """) parser = argparse.ArgumentParser( @@ -62,7 +67,7 @@ def parse_args(): "--distro", dest="distro", required=True, - choices=KNOWN_DISTROS, + choices=KNOWN_DISTROS + list(UNRELEASED_DISTROS_AND_OSINFO.keys()), help="What distribution to install.", ) parser.add_argument( @@ -162,7 +167,7 @@ def parse_args(): "--osinfo", dest="osinfo", default=None, - help="Specify OSInfo for virt-install command", + help="Specify OSInfo for virt-install command.", ) return parser.parse_args() @@ -336,8 +341,8 @@ def get_virt_install_command(data): if data.osinfo: command.append(f'--osinfo={data.osinfo}') else: - if 'rhel' in data.distro: - command.append(f'--osinfo=rhel8-unknown') + if data.distro in UNRELEASED_DISTROS_AND_OSINFO.keys(): + command.append("--osinfo={}".format(UNRELEASED_DISTROS_AND_OSINFO.get(data.distro, "rhel9-unknown"))) command.extend(join_extented_opt("--boot", ",", boot_opts)) From ebec63863fe624243d0e9a9486356202be979380 Mon Sep 17 00:00:00 2001 From: Gabriel Becker Date: Wed, 22 Jan 2025 16:01:13 +0100 Subject: [PATCH 4/4] Update install_vm documentation with information about unr distros. --- tests/install_vm.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/install_vm.py b/tests/install_vm.py index dd69bb807ec..ae2c49524c8 100755 --- a/tests/install_vm.py +++ b/tests/install_vm.py @@ -41,13 +41,11 @@ def path_from_tests(path): def parse_args(): import textwrap osinfo_epilog = textwrap.dedent(r""" - --osinfo details: 'rhel8-unknown' is used by default when '--distro' has any of - the RHEL available selected. Run 'virt-install --osinfo list' - to get a list of available options - """) + --osinfo details: 'For unreleased distros, these are the following + default data used as input {}. + """.format(UNRELEASED_DISTROS_AND_OSINFO)) parser = argparse.ArgumentParser( formatter_class=argparse.RawTextHelpFormatter, - # formatter_class=argparse.ArgumentDefaultsHelpFormatter, epilog=osinfo_epilog, ) @@ -342,8 +340,8 @@ def get_virt_install_command(data): command.append(f'--osinfo={data.osinfo}') else: if data.distro in UNRELEASED_DISTROS_AND_OSINFO.keys(): - command.append("--osinfo={}".format(UNRELEASED_DISTROS_AND_OSINFO.get(data.distro, "rhel9-unknown"))) - + command.append("--osinfo={}".format( + UNRELEASED_DISTROS_AND_OSINFO.get(data.distro, "rhel9-unknown"))) command.extend(join_extented_opt("--boot", ",", boot_opts)) command.extend(join_extented_opt("--extra-args", " ", extra_args_opts))