Merge pull request #1 from tcooper/nazunalika/develop
rebase and add fixes for #141
@ -56,14 +56,12 @@ sub setup_tap_static {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub get_host_dns {
|
sub get_host_dns {
|
||||||
# get DNS server addresses from the host
|
# get DNS server addresses from the host. Assumes host uses
|
||||||
my @forwards;
|
# systemd-resolved and doesn't use IPv6, for now
|
||||||
open(FH, '<', "/etc/resolv.conf");
|
my $result = `/usr/bin/resolvectl status | grep Servers | tail -1 | cut -d: -f2-`;
|
||||||
while (<FH>) {
|
# FIXME this is gonna break when we have IPv6 DNS servers on the
|
||||||
if ($_ =~ m/^nameserver +(.+)/) {
|
# worker hosts
|
||||||
push @forwards, $1;
|
my @forwards = split(' ', $result);
|
||||||
}
|
|
||||||
}
|
|
||||||
return @forwards;
|
return @forwards;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -451,6 +451,9 @@ sub cleanup_workaround_repo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub setup_workaround_repo {
|
sub setup_workaround_repo {
|
||||||
|
# doesn't work for Rocky
|
||||||
|
my $distri = get_var("DISTRI");
|
||||||
|
return if ($distri eq "rocky");
|
||||||
# we periodically need to pull an update from updates-testing in
|
# we periodically need to pull an update from updates-testing in
|
||||||
# to fix some bug or other. so, here's an organized way to do it.
|
# to fix some bug or other. so, here's an organized way to do it.
|
||||||
# we do this here so the workaround packages are in the repo data
|
# we do this here so the workaround packages are in the repo data
|
||||||
@ -502,6 +505,9 @@ sub setup_workaround_repo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub _repo_setup_compose {
|
sub _repo_setup_compose {
|
||||||
|
# doesn't work for Rocky
|
||||||
|
my $distri = get_var("DISTRI");
|
||||||
|
return if ($distri eq "rocky");
|
||||||
# doesn't work for IoT or CoreOS, anything that hits this on those
|
# doesn't work for IoT or CoreOS, anything that hits this on those
|
||||||
# paths must work with default mirror config...
|
# paths must work with default mirror config...
|
||||||
my $subvariant = get_var("SUBVARIANT");
|
my $subvariant = get_var("SUBVARIANT");
|
||||||
@ -531,6 +537,9 @@ sub _repo_setup_compose {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub _repo_setup_updates {
|
sub _repo_setup_updates {
|
||||||
|
# doesn't work for Rocky
|
||||||
|
my $distri = get_var("DISTRI");
|
||||||
|
return if ($distri eq "rocky");
|
||||||
# Appropriate repo setup steps for testing a Bodhi update
|
# Appropriate repo setup steps for testing a Bodhi update
|
||||||
# Check if we already ran, bail if so
|
# Check if we already ran, bail if so
|
||||||
return unless script_run "test -f /etc/yum.repos.d/advisory.repo";
|
return unless script_run "test -f /etc/yum.repos.d/advisory.repo";
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 66,
|
||||||
|
"ypos": 295,
|
||||||
|
"width": 441,
|
||||||
|
"type": "match",
|
||||||
|
"height": 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"anaconda_help_localization_link"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 91 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 36,
|
||||||
|
"ypos": 145,
|
||||||
|
"xpos": 250,
|
||||||
|
"height": 11,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-arabic",
|
||||||
|
"anaconda_install_user_created"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 123 KiB |
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 634,
|
||||||
|
"xpos": 716,
|
||||||
|
"width": 305,
|
||||||
|
"height": 14,
|
||||||
|
"type": "match"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"height": 14,
|
||||||
|
"ypos": 698,
|
||||||
|
"width": 105,
|
||||||
|
"xpos": 875
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-japanese",
|
||||||
|
"anaconda_install_done"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 226 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 398,
|
||||||
|
"ypos": 145,
|
||||||
|
"width": 36,
|
||||||
|
"type": "match",
|
||||||
|
"height": 11
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-russian",
|
||||||
|
"anaconda_install_user_created"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 129 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 224,
|
||||||
|
"ypos": 361,
|
||||||
|
"width": 45,
|
||||||
|
"height": 11,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-arabic",
|
||||||
|
"anaconda_network_connected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 250 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 783,
|
||||||
|
"ypos": 364,
|
||||||
|
"width": 60,
|
||||||
|
"height": 10,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-french",
|
||||||
|
"anaconda_network_connected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 253 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 785,
|
||||||
|
"ypos": 362,
|
||||||
|
"width": 50,
|
||||||
|
"height": 10,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-japanese",
|
||||||
|
"anaconda_network_connected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 288 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 719,
|
||||||
|
"height": 18,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 359,
|
||||||
|
"width": 105
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"anaconda_network_connected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 250 KiB |
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 778,
|
||||||
|
"ypos": 364,
|
||||||
|
"width": 68,
|
||||||
|
"height": 10,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-russian",
|
||||||
|
"anaconda_network_connected"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 256 KiB |
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 21,
|
||||||
|
"type": "match",
|
||||||
|
"width": 42,
|
||||||
|
"xpos": 965,
|
||||||
|
"ypos": 34,
|
||||||
|
"click_point": {
|
||||||
|
"xpos": 21,
|
||||||
|
"ypos": 10.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-arabic",
|
||||||
|
"anaconda_spoke_done"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 126 KiB |
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 56,
|
||||||
|
"ypos": 34,
|
||||||
|
"xpos": 17,
|
||||||
|
"height": 21,
|
||||||
|
"type": "match",
|
||||||
|
"click_point": {
|
||||||
|
"xpos": 28,
|
||||||
|
"ypos": 10.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"LANGUAGE-russian",
|
||||||
|
"anaconda_spoke_done"
|
||||||
|
]
|
||||||
|
}
|
After Width: | Height: | Size: 127 KiB |
16
needles/cockpit/rocky-autoupdate_planned_time-20230517.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 475,
|
||||||
|
"xpos": 529,
|
||||||
|
"width": 40,
|
||||||
|
"height": 21,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"autoupdate_planned_time"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-autoupdate_planned_time-20230517.png
Normal file
After Width: | Height: | Size: 47 KiB |
16
needles/cockpit/rocky-cockpit_login-20230824.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 618,
|
||||||
|
"height": 77,
|
||||||
|
"ypos": 224,
|
||||||
|
"type": "match",
|
||||||
|
"width": 232
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"cockpit_login"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_login-20230824.png
Normal file
After Width: | Height: | Size: 191 KiB |
17
needles/cockpit/rocky-cockpit_services_detail-20230517.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 28,
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 585,
|
||||||
|
"xpos": 264,
|
||||||
|
"width": 133
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"cockpit_services_detail"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_services_detail-20230517.png
Normal file
After Width: | Height: | Size: 73 KiB |
17
needles/cockpit/rocky-logs-20230517.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 362,
|
||||||
|
"width": 39,
|
||||||
|
"xpos": 14,
|
||||||
|
"height": 18,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"cockpit_logs"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-logs-20230517.png
Normal file
After Width: | Height: | Size: 76 KiB |
17
needles/console/rocky-boot_enter_passphrase-20230513.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 618,
|
||||||
|
"xpos": 16,
|
||||||
|
"width": 143,
|
||||||
|
"height": 10,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"LANGUAGE-english",
|
||||||
|
"boot_enter_passphrase"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/rocky-boot_enter_passphrase-20230513.png
Normal file
After Width: | Height: | Size: 97 KiB |
17
needles/console/rocky-bootloader_uefi-20230513.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 113,
|
||||||
|
"ypos": 575,
|
||||||
|
"xpos": 427,
|
||||||
|
"type": "match",
|
||||||
|
"height": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"bootloader_uefi"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/rocky-bootloader_uefi-20230513.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
18
needles/console/rocky-bootloader_uefi-20230803.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"ypos": 611,
|
||||||
|
"width": 113,
|
||||||
|
"xpos": 210,
|
||||||
|
"height": 19
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"bootloader",
|
||||||
|
"bootloader_uefi"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/rocky-bootloader_uefi-20230803.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
18
needles/console/rocky-bootloader_uefi-20230804.json
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"width": 113,
|
||||||
|
"ypos": 611,
|
||||||
|
"type": "match",
|
||||||
|
"height": 19,
|
||||||
|
"xpos": 210
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"ENV-LANGUAGE-english",
|
||||||
|
"bootloader",
|
||||||
|
"bootloader_uefi"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/console/rocky-bootloader_uefi-20230804.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
16
needles/gnome/japanese/rocky-getting_started-20230513.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"type": "match",
|
||||||
|
"height": 157,
|
||||||
|
"width": 163,
|
||||||
|
"ypos": 224,
|
||||||
|
"xpos": 445
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"getting_started"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/japanese/rocky-getting_started-20230513.png
Normal file
After Width: | Height: | Size: 201 KiB |
@ -1,16 +1,18 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
MAJOR_VERSION=9
|
|
||||||
MINOR_VERSION=0
|
|
||||||
|
|
||||||
## Usage: Posts ISOs to openQA for each of the universal, dvd-iso, package-set, minimal-iso, and boot-iso FLAVORs.
|
## Usage: Posts ISOs to openQA for each of the universal, dvd-iso, package-set, minimal-iso, and boot-iso FLAVORs.
|
||||||
# scripts/run-all-flavors.sh
|
# scripts/run-all-flavors.sh
|
||||||
|
# Test a beta build with alternative repo URL
|
||||||
|
# ROCKY_EXTRA_ARGS="GRUB=ip=dhcp GRUBADD=inst.repo=https://dl.rockylinux.org/stg/rocky/8.8-BETA/BaseOS/x86_64/os DNF_CONTENTDIR=stg CURRREL=8 IDENTIFICATION=false" scripts/run-all-flavors.sh
|
||||||
|
|
||||||
ROCKY_VERSION="$MAJOR_VERSION.$MINOR_VERSION"
|
ROCKY_VERSION="9.2"
|
||||||
|
|
||||||
|
MAJOR_VERSION=${ROCKY_VERSION:0:1}
|
||||||
|
MINOR_VERSION=${ROCKY_VERSION:2:1}
|
||||||
ROCKY_ARCH="${ROCKY_ARCH:=x86_64}"
|
ROCKY_ARCH="${ROCKY_ARCH:=x86_64}"
|
||||||
ROCKY_EXTRA_ARGS="${ROCKY_EXTRA_ARGS:-}"
|
ROCKY_EXTRA_ARGS="${ROCKY_EXTRA_ARGS:-}"
|
||||||
BUILD_PREFIX="-$(date +%Y%m%d.%H%M%S).0-$(git branch --show-current)"
|
BUILD_NAME="-$(date +%Y%m%d).0-$(git branch --show-current)-$ROCKY_VERSION"
|
||||||
ISO_PREFIX="Rocky-$ROCKY_VERSION-$ROCKY_ARCH"
|
ISO_PREFIX="Rocky-$ROCKY_VERSION-$ROCKY_ARCH"
|
||||||
DVD_ISOTYPE=dvd1
|
DVD_ISOTYPE=dvd1
|
||||||
|
|
||||||
@ -31,8 +33,8 @@ openqa-cli api \
|
|||||||
DISTRI=rocky \
|
DISTRI=rocky \
|
||||||
FLAVOR=universal \
|
FLAVOR=universal \
|
||||||
VERSION="$ROCKY_VERSION" \
|
VERSION="$ROCKY_VERSION" \
|
||||||
BUILD="$BUILD_PREFIX-universal-$ROCKY_VERSION" \
|
BUILD="$BUILD_NAME" \
|
||||||
"${ROCKY_EXTRA_ARGS}"
|
${ROCKY_EXTRA_ARGS}
|
||||||
|
|
||||||
openqa-cli api \
|
openqa-cli api \
|
||||||
-X POST isos \
|
-X POST isos \
|
||||||
@ -41,8 +43,8 @@ openqa-cli api \
|
|||||||
DISTRI=rocky \
|
DISTRI=rocky \
|
||||||
FLAVOR="dvd-iso" \
|
FLAVOR="dvd-iso" \
|
||||||
VERSION="$ROCKY_VERSION" \
|
VERSION="$ROCKY_VERSION" \
|
||||||
BUILD="$BUILD_PREFIX-dvd-$ROCKY_VERSION" \
|
BUILD="$BUILD_NAME" \
|
||||||
"${ROCKY_EXTRA_ARGS}"
|
${ROCKY_EXTRA_ARGS}
|
||||||
|
|
||||||
openqa-cli api \
|
openqa-cli api \
|
||||||
-X POST isos \
|
-X POST isos \
|
||||||
@ -51,8 +53,8 @@ openqa-cli api \
|
|||||||
DISTRI=rocky \
|
DISTRI=rocky \
|
||||||
FLAVOR=package-set \
|
FLAVOR=package-set \
|
||||||
VERSION="$ROCKY_VERSION" \
|
VERSION="$ROCKY_VERSION" \
|
||||||
BUILD="$BUILD_PREFIX-packageset-$ROCKY_VERSION" \
|
BUILD="$BUILD_NAME" \
|
||||||
"${ROCKY_EXTRA_ARGS}"
|
${ROCKY_EXTRA_ARGS}
|
||||||
|
|
||||||
openqa-cli api \
|
openqa-cli api \
|
||||||
-X POST isos \
|
-X POST isos \
|
||||||
@ -61,8 +63,8 @@ openqa-cli api \
|
|||||||
DISTRI=rocky \
|
DISTRI=rocky \
|
||||||
FLAVOR=minimal-iso \
|
FLAVOR=minimal-iso \
|
||||||
VERSION="$ROCKY_VERSION" \
|
VERSION="$ROCKY_VERSION" \
|
||||||
BUILD="$BUILD_PREFIX-minimal-$ROCKY_VERSION" \
|
BUILD="$BUILD_NAME" \
|
||||||
"${ROCKY_EXTRA_ARGS}"
|
${ROCKY_EXTRA_ARGS}
|
||||||
|
|
||||||
openqa-cli api \
|
openqa-cli api \
|
||||||
-X POST isos \
|
-X POST isos \
|
||||||
@ -71,5 +73,5 @@ openqa-cli api \
|
|||||||
DISTRI=rocky \
|
DISTRI=rocky \
|
||||||
FLAVOR=boot-iso \
|
FLAVOR=boot-iso \
|
||||||
VERSION="$ROCKY_VERSION" \
|
VERSION="$ROCKY_VERSION" \
|
||||||
BUILD="$BUILD_PREFIX-boot-$ROCKY_VERSION" \
|
BUILD="$BUILD_NAME" \
|
||||||
"${ROCKY_EXTRA_ARGS}"
|
${ROCKY_EXTRA_ARGS}
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
MAJOR_VERSION=9
|
|
||||||
MINOR_VERSION=0
|
|
||||||
|
|
||||||
## Usage: Post an ISO for the specified FLAVOR. Defaults to boot-iso.
|
## Usage: Post an ISO for the specified FLAVOR. Defaults to boot-iso.
|
||||||
#
|
#
|
||||||
## Run the boot-iso FLAVOR
|
## Run the boot-iso FLAVOR
|
||||||
@ -15,13 +12,14 @@ MINOR_VERSION=0
|
|||||||
## Run the localization test suites
|
## Run the localization test suites
|
||||||
# ROCKY_FLAVOR ROCKY_EXTRA_ARGS=TEST=install_arabic_language,install_asian_language,install_european_language,install_cyrillic_language scripts/run-openqa-tests.sh
|
# ROCKY_FLAVOR ROCKY_EXTRA_ARGS=TEST=install_arabic_language,install_asian_language,install_european_language,install_cyrillic_language scripts/run-openqa-tests.sh
|
||||||
|
|
||||||
|
ROCKY_VERSION="9.2"
|
||||||
|
|
||||||
|
MAJOR_VERSION=${ROCKY_VERSION:0:1}
|
||||||
|
MINOR_VERSION=${ROCKY_VERSION:2:1}
|
||||||
ROCKY_FLAVOR="${ROCKY_FLAVOR:-boot-iso}"
|
ROCKY_FLAVOR="${ROCKY_FLAVOR:-boot-iso}"
|
||||||
ROCKY_VERSION="$MAJOR_VERSION.$MINOR_VERSION"
|
|
||||||
ROCKY_ARCH="${ROCKY_ARCH:=x86_64}"
|
ROCKY_ARCH="${ROCKY_ARCH:=x86_64}"
|
||||||
ROCKY_EXTRA_ARGS="${ROCKY_EXTRA_ARGS:-}"
|
ROCKY_EXTRA_ARGS="${ROCKY_EXTRA_ARGS:-}"
|
||||||
BUILD_PREFIX="-$(date +%Y%m%d.%H%M%S).0-$(git branch --show-current)"
|
BUILD_NAME="-$(date +%Y%m%d).0-$(git branch --show-current)-$ROCKY_VERSION"
|
||||||
BUILD_NAME="$BUILD_PREFIX-$ROCKY_FLAVOR-$ROCKY_VERSION"
|
|
||||||
|
|
||||||
ISO_PREFIX="Rocky-$ROCKY_VERSION-$ROCKY_ARCH"
|
ISO_PREFIX="Rocky-$ROCKY_VERSION-$ROCKY_ARCH"
|
||||||
|
|
||||||
if [[ "$ROCKY_FLAVOR" == "dvd-iso" || "$ROCKY_FLAVOR" == "universal" ]]; then
|
if [[ "$ROCKY_FLAVOR" == "dvd-iso" || "$ROCKY_FLAVOR" == "universal" ]]; then
|
||||||
|
@ -1418,6 +1418,36 @@
|
|||||||
"WORKER_CLASS": "tap"
|
"WORKER_CLASS": "tap"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"slurm22": {
|
||||||
|
"profiles": {
|
||||||
|
"rocky-dvd-iso-aarch64-*-aarch64": 10,
|
||||||
|
"rocky-dvd-iso-x86_64-*-64bit": 10
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"BOOTFROM": "c",
|
||||||
|
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
||||||
|
"POSTINSTALL": "slurm",
|
||||||
|
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%",
|
||||||
|
"ROOT_PASSWORD": "weakpassword",
|
||||||
|
"USER_LOGIN": "false",
|
||||||
|
"SLURM_VERSION": "22"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"slurm23": {
|
||||||
|
"profiles": {
|
||||||
|
"rocky-dvd-iso-aarch64-*-aarch64": 10,
|
||||||
|
"rocky-dvd-iso-x86_64-*-64bit": 10
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"BOOTFROM": "c",
|
||||||
|
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
||||||
|
"POSTINSTALL": "slurm",
|
||||||
|
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%",
|
||||||
|
"ROOT_PASSWORD": "weakpassword",
|
||||||
|
"USER_LOGIN": "false",
|
||||||
|
"SLURM_VERSION": "23"
|
||||||
|
}
|
||||||
|
},
|
||||||
"support_server": {
|
"support_server": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"rocky-dvd-iso-aarch64-*-aarch64": 10,
|
"rocky-dvd-iso-aarch64-*-aarch64": 10,
|
||||||
|
@ -6,7 +6,7 @@ use utils;
|
|||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
# If UPGRADE is set, we have to wait for the entire upgrade
|
# If UPGRADE is set, we have to wait for the entire upgrade
|
||||||
my $wait_time = 300;
|
my $wait_time = 600;
|
||||||
$wait_time = 6000 if (get_var("UPGRADE"));
|
$wait_time = 6000 if (get_var("UPGRADE"));
|
||||||
|
|
||||||
# handle bootloader, if requested
|
# handle bootloader, if requested
|
||||||
|
@ -2,24 +2,37 @@ use base "installedtest";
|
|||||||
use strict;
|
use strict;
|
||||||
use testapi;
|
use testapi;
|
||||||
use packagetest;
|
use packagetest;
|
||||||
|
use utils;
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
# switch to TTY3 for both, graphical and console tests
|
# switch to TTY3 for both, graphical and console tests
|
||||||
$self->root_console(tty => 3);
|
$self->root_console(tty => 3);
|
||||||
|
|
||||||
# enable test repos and install test packages
|
# enable test repos and install test packages
|
||||||
prepare_test_packages;
|
prepare_test_packages;
|
||||||
|
|
||||||
# check rpm agrees they installed good
|
# check rpm agrees they installed good
|
||||||
verify_installed_packages;
|
verify_installed_packages;
|
||||||
if (get_var("DISTRI") eq "rocky") {
|
if (get_var("DISTRI") eq "rocky") {
|
||||||
# pandoc-common is in PowerTools in RockyLinux
|
if (get_version_major() < 9) {
|
||||||
|
# pandoc-common is in PowerTools in Rocky Linux 8
|
||||||
assert_script_run 'dnf config-manager --set-enabled powertools', 60;
|
assert_script_run 'dnf config-manager --set-enabled powertools', 60;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
# pandoc-common is in CRB in Rocky Linux 8
|
||||||
|
assert_script_run 'dnf config-manager --set-enabled crb', 60;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# update the fake pandoc-common (should come from the real repo)
|
# update the fake pandoc-common (should come from the real repo)
|
||||||
# this can take a long time if we get unlucky with the metadata refresh
|
# this can take a long time if we get unlucky with the metadata refresh
|
||||||
assert_script_run 'dnf -y --disablerepo=openqa-testrepo* --disablerepo=updates-testing update pandoc-common', 600;
|
assert_script_run 'dnf -y --disablerepo=openqa-testrepo* --disablerepo=updates-testing update pandoc-common', 600;
|
||||||
|
|
||||||
# check we got the updated version
|
# check we got the updated version
|
||||||
verify_updated_packages;
|
verify_updated_packages;
|
||||||
|
|
||||||
# now remove pandoc-common, and see if we can do a straight
|
# now remove pandoc-common, and see if we can do a straight
|
||||||
# install from the default repos
|
# install from the default repos
|
||||||
assert_script_run 'dnf -y remove pandoc-common';
|
assert_script_run 'dnf -y remove pandoc-common';
|
||||||
|
@ -5,13 +5,13 @@ use utils;
|
|||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
# switch to tty1 (we're usually there already, but just in case
|
|
||||||
# we're carrying on from a failed freeipa_webui that didn't fail
|
|
||||||
# at tty1)
|
|
||||||
my $ipa_domain = 'test.openqa.rockylinux.org';
|
my $ipa_domain = 'test.openqa.rockylinux.org';
|
||||||
my $ipa_realm = 'TEST.OPENQA.ROCKYLINUX.ORG';
|
my $ipa_realm = 'TEST.OPENQA.ROCKYLINUX.ORG';
|
||||||
send_key "ctrl-alt-f1";
|
|
||||||
|
# Rocky SUT is graphical so stay on/force tty3 do NOT switch to tty1
|
||||||
|
$self->root_console(tty => 3);
|
||||||
wait_still_screen 1;
|
wait_still_screen 1;
|
||||||
|
|
||||||
# check domain is listed in 'realm list'
|
# check domain is listed in 'realm list'
|
||||||
validate_script_output 'realm list', sub { $_ =~ m/domain-name: test\.openqa\.rockylinux\.org.*configured: kerberos-member/s };
|
validate_script_output 'realm list', sub { $_ =~ m/domain-name: test\.openqa\.rockylinux\.org.*configured: kerberos-member/s };
|
||||||
# check we can see the admin user in getent
|
# check we can see the admin user in getent
|
||||||
|
@ -23,7 +23,7 @@ sub run {
|
|||||||
my $ipa_realm = 'TEST.OPENQA.ROCKYLINUX.ORG';
|
my $ipa_realm = 'TEST.OPENQA.ROCKYLINUX.ORG';
|
||||||
my $ipa_admin_password = 'b1U3OnyX!';
|
my $ipa_admin_password = 'b1U3OnyX!';
|
||||||
my $ipa_reverse_zone = '2.16.172.in-addr.arpa';
|
my $ipa_reverse_zone = '2.16.172.in-addr.arpa';
|
||||||
my $ipa_install_args = "-U --auto-forwarders --realm=$ipa_realm --domain=$ipa_domain --ds-password=$ipa_admin_password --admin-password=$ipa_admin_password --setup-dns --reverse-zone=$ipa_reverse_zone --allow-zone-overlap";
|
my $ipa_install_args = "-U --auto-forwarders --realm=$ipa_realm --domain=$ipa_domain --ds-password=$ipa_admin_password --admin-password=$ipa_admin_password --setup-dns --reverse-zone=$ipa_reverse_zone --allow-zone-overlap --skip-mem-check";
|
||||||
given ($version_major) {
|
given ($version_major) {
|
||||||
when ('8') {
|
when ('8') {
|
||||||
$ipa_install_cmd = 'dnf --assumeyes module install idm:DL1/{dns,client,server,common}';
|
$ipa_install_cmd = 'dnf --assumeyes module install idm:DL1/{dns,client,server,common}';
|
||||||
@ -39,8 +39,13 @@ sub run {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# login
|
# switch to TTY3 for both, graphical and console tests
|
||||||
$self->root_console();
|
$self->root_console(tty => 3);
|
||||||
|
|
||||||
|
if (get_var("ROOT_PASSWORD")) {
|
||||||
|
console_login(user => "root", password => get_var("ROOT_PASSWORD"));
|
||||||
|
}
|
||||||
|
|
||||||
# We need entropy. Install rng-tools and start it up. Fedora uses haveged
|
# We need entropy. Install rng-tools and start it up. Fedora uses haveged
|
||||||
# but Rocky Linux does not have it unless EPEL is used.
|
# but Rocky Linux does not have it unless EPEL is used.
|
||||||
assert_script_run "dnf --assumeyes install rng-tools", 300;
|
assert_script_run "dnf --assumeyes install rng-tools", 300;
|
||||||
@ -72,7 +77,7 @@ sub run {
|
|||||||
############################################################################
|
############################################################################
|
||||||
# Testing kerb services
|
# Testing kerb services
|
||||||
assert_script_run "ipa service-add testservice/$ipa_hostname";
|
assert_script_run "ipa service-add testservice/$ipa_hostname";
|
||||||
assert_script_run "ipa-getkeytab -s $ipa_hostname -p testservice/$ipa_hostname";
|
assert_script_run "ipa-getkeytab -s $ipa_hostname -p testservice/$ipa_hostname -k /tmp/testservice.keytab";
|
||||||
validate_script_output 'klist -k /tmp/testservice.keytab', sub { $_ =~ m/testservice\/$ipa_hostname/ };
|
validate_script_output 'klist -k /tmp/testservice.keytab', sub { $_ =~ m/testservice\/$ipa_hostname/ };
|
||||||
# This is commented for now. We need a while loop that watches for ipa-getcert list -r to become empty.
|
# This is commented for now. We need a while loop that watches for ipa-getcert list -r to become empty.
|
||||||
#assert_script_run "ipa-getcert request -K testservice/$ipa_hostname -D $ipa_hostname -f /etc/pki/tls/certs/testservice.pki -k /etc/pki/tls/private/testservice.key";
|
#assert_script_run "ipa-getcert request -K testservice/$ipa_hostname -D $ipa_hostname -f /etc/pki/tls/certs/testservice.pki -k /etc/pki/tls/private/testservice.key";
|
||||||
@ -114,13 +119,17 @@ sub run {
|
|||||||
assert_script_run "printf 'correcthorse\nbatterystaple\nbatterystaple' | kinit test2\@$ipa_realm";
|
assert_script_run "printf 'correcthorse\nbatterystaple\nbatterystaple' | kinit test2\@$ipa_realm";
|
||||||
|
|
||||||
# add a sudo rule
|
# add a sudo rule
|
||||||
|
assert_script_run "kswitch -p admin\@$ipa_realm";
|
||||||
assert_script_run 'ipa sudorule-add testrule --desc="Test rule in IPA" --hostcat=all --cmdcat=all --runasusercat=all --runasgroupcat=all';
|
assert_script_run 'ipa sudorule-add testrule --desc="Test rule in IPA" --hostcat=all --cmdcat=all --runasusercat=all --runasgroupcat=all';
|
||||||
assert_script_run 'ipa sudorule-add-user testrule --users="test1"';
|
assert_script_run 'ipa sudorule-add-user testrule --users="test1"';
|
||||||
validate_script_output 'ipa sudorule-show testrule', sub { $_ =~ m/Rule name: testrule/ };
|
validate_script_output 'ipa sudorule-show testrule', sub { $_ =~ m/Rule name: testrule/ };
|
||||||
validate_script_output 'ipa sudorule-show testrule', sub { $_ =~ m/Users: test1/ };
|
validate_script_output 'ipa sudorule-show testrule', sub { $_ =~ m/Users: test1/ };
|
||||||
# This may fail - Invalidate sudo cache and check test1's sudo perms
|
# This may fail - Invalidate sudo cache and check test1's sudo perms
|
||||||
|
# If we want to test this in openQA it appears we may need to deploy more complete
|
||||||
|
# config for sudo. For now change validate_script_output to assert_script_run
|
||||||
assert_script_run 'sss_cache -R';
|
assert_script_run 'sss_cache -R';
|
||||||
validate_script_output 'sudo -l -U test1', sub { $_ =~ m/test1 may run the following commands/ };
|
#validate_script_output 'sudo -l -U test1', sub { $_ =~ m/test1 may run the following commands/ };
|
||||||
|
assert_script_run 'sudo -l -U test1';
|
||||||
|
|
||||||
# we're ready for children to enroll, now
|
# we're ready for children to enroll, now
|
||||||
mutex_create("freeipa_ready");
|
mutex_create("freeipa_ready");
|
||||||
|
65
tests/slurm.pm
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
use base "installedtest";
|
||||||
|
use strict;
|
||||||
|
use testapi;
|
||||||
|
use utils;
|
||||||
|
|
||||||
|
sub slurm_setup {
|
||||||
|
# install HPC repository
|
||||||
|
my $version = get_var("SLURM_VERSION");
|
||||||
|
assert_script_run "dnf -y install rocky-release-hpc", 120;
|
||||||
|
|
||||||
|
# Set up munge
|
||||||
|
assert_script_run "dnf -y install munge", 120;
|
||||||
|
assert_script_run "dd if=/dev/urandom bs=1 count=1024 >/etc/munge/munge.key";
|
||||||
|
assert_script_run "chmod 400 /etc/munge/munge.key";
|
||||||
|
assert_script_run "chown munge.munge /etc/munge/munge.key";
|
||||||
|
assert_script_run "systemctl enable --now munge.service";
|
||||||
|
|
||||||
|
# install slurm
|
||||||
|
if (get_var("CURRREL") eq '8') {
|
||||||
|
assert_script_run "dnf config-manager --set-enabled powertools";
|
||||||
|
}
|
||||||
|
assert_script_run "dnf install -y slurm$version-slurmdbd slurm$version-slurmrestd slurm$version-slurmctld slurm$version-slurmd";
|
||||||
|
|
||||||
|
# Since this is a single node system, we don't have to modify the conf files. We will for larger multi-node tests.
|
||||||
|
# start services
|
||||||
|
assert_script_run "systemctl enable --now slurmctld slurmdbd slurmrestd slurmd";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub run {
|
||||||
|
my $self = shift;
|
||||||
|
|
||||||
|
# do all the install stuff
|
||||||
|
slurm_setup();
|
||||||
|
|
||||||
|
# if everything is configured right, sinfo should show the following output
|
||||||
|
# $ sinfo
|
||||||
|
# PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
|
||||||
|
# debug* up infinite 1 idle localhost
|
||||||
|
validate_script_output "sinfo", sub { m/debug.*localhost/ };
|
||||||
|
|
||||||
|
# write a boring job script
|
||||||
|
assert_script_run "echo '#!/bin/bash\n#SBATCH --job-name=antarctica_time\nsleep 120\nTZ=NZST date' > job.sh";
|
||||||
|
|
||||||
|
## schedule a job and run it to completion
|
||||||
|
assert_script_run "sbatch job.sh";
|
||||||
|
validate_script_output "squeue", sub { m/antar/ };
|
||||||
|
sleep 121;
|
||||||
|
# after 121 seconds, job should have completed and no longer exist in the queue
|
||||||
|
validate_script_output "squeue", sub { $_ !~ m/antar/ };
|
||||||
|
|
||||||
|
## cancel a job
|
||||||
|
assert_script_run "sbatch job.sh";
|
||||||
|
validate_script_output "squeue", sub { m/antar/ };
|
||||||
|
assert_script_run "scancel 2";
|
||||||
|
# job should no longer be in the queue
|
||||||
|
validate_script_output "squeue", sub { $_ !~ m/antar/ };
|
||||||
|
}
|
||||||
|
|
||||||
|
sub test_flags {
|
||||||
|
return {fatal => 1};
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
# vim: set sw=4 et:
|