mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-11-22 05:53:09 +00:00
Disable updates-testing during upgrade_preinstall
This issue appeared when we started testing Rawhide updates, but I only noticed it today. When testing Rawhide updates after Branch point, the upgrade tests upgrade from Branched to Rawhide. On Branched, updates-testing is enabled by default. We only disable it when we reach `upgrade_run`, but by that point we've already done a `dnf -y update` in `upgrade_preinstall` and potentially installed other packages in steps between `upgrade_preinstall` and `upgrade_run`. That can cause problems, like today all FreeIPA upgrade tests on Rawhide are failing because there's a newer freeipa in updates-testing for F37 than is in the current Rawhide compose. Solve this by disabling updates-testing before we do the update in `upgrade_preinstall`. To avoid excessive code duplication, factor out the repo disabling code. We'll do this twice on upgrade tests now, but it shouldn't be a problem. Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
parent
0a411bd8e1
commit
2b79d59379
36
lib/utils.pm
36
lib/utils.pm
@ -7,7 +7,7 @@ use Exporter;
|
|||||||
|
|
||||||
use lockapi;
|
use lockapi;
|
||||||
use testapi;
|
use testapi;
|
||||||
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable/;
|
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type repo_setup setup_workaround_repo disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log click_unwanted_notifications repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable/;
|
||||||
|
|
||||||
# We introduce this global variable to hold the list of applications that have
|
# We introduce this global variable to hold the list of applications that have
|
||||||
# registered during the apps_startstop_test when they have sucessfully run.
|
# registered during the apps_startstop_test when they have sucessfully run.
|
||||||
@ -481,7 +481,7 @@ sub setup_workaround_repo {
|
|||||||
"35" => [],
|
"35" => [],
|
||||||
"36" => [],
|
"36" => [],
|
||||||
"37" => [],
|
"37" => [],
|
||||||
"38" => ["FEDORA-2022-4e9444ba4c"],
|
"38" => ["FEDORA-2022-4e9444ba4c", "FEDORA-2022-401265dc3e"],
|
||||||
);
|
);
|
||||||
# then we'll download each update for our release:
|
# then we'll download each update for our release:
|
||||||
my $advortasks = $workarounds{$version};
|
my $advortasks = $workarounds{$version};
|
||||||
@ -509,6 +509,23 @@ sub setup_workaround_repo {
|
|||||||
assert_script_run "popd";
|
assert_script_run "popd";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub disable_updates_repos {
|
||||||
|
# disable updates-testing, or both updates-testing and updates.
|
||||||
|
# factors out similar code in a few different places.
|
||||||
|
my %args = (
|
||||||
|
both => 0,
|
||||||
|
@_
|
||||||
|
);
|
||||||
|
my $nonmod = "updates-testing";
|
||||||
|
$nonmod .= " updates" if ($args{both});
|
||||||
|
assert_script_run "dnf config-manager --set-disabled $nonmod";
|
||||||
|
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-testing-modular.repo') {
|
||||||
|
my $mod = "updates-testing-modular";
|
||||||
|
$mod .= " updates-modular" if ($args{both});
|
||||||
|
assert_script_run "dnf config-manager --set-disabled $mod";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub _repo_setup_compose {
|
sub _repo_setup_compose {
|
||||||
# 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...
|
||||||
@ -520,11 +537,7 @@ sub _repo_setup_compose {
|
|||||||
# tools see only packages from the compose under test
|
# tools see only packages from the compose under test
|
||||||
my $location = get_var("LOCATION");
|
my $location = get_var("LOCATION");
|
||||||
return unless $location;
|
return unless $location;
|
||||||
assert_script_run 'dnf config-manager --set-disabled updates-testing updates';
|
disable_updates_repos(both => 1);
|
||||||
# script_run returns the exit code, so 'unless' here means 'if the file exists'
|
|
||||||
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-modular.repo') {
|
|
||||||
assert_script_run 'dnf config-manager --set-disabled updates-testing-modular updates-modular';
|
|
||||||
}
|
|
||||||
# we use script_run here as the rawhide and modular repo files
|
# we use script_run here as the rawhide and modular repo files
|
||||||
# won't always exist and we don't want to bother testing or
|
# won't always exist and we don't want to bother testing or
|
||||||
# predicting their existence; assert_script_run doesn't buy you
|
# predicting their existence; assert_script_run doesn't buy you
|
||||||
@ -551,14 +564,7 @@ sub _repo_setup_updates {
|
|||||||
# }
|
# }
|
||||||
if ($version > $currrel) {
|
if ($version > $currrel) {
|
||||||
# Disable updates-testing so other bad updates don't break us
|
# Disable updates-testing so other bad updates don't break us
|
||||||
# this will do nothing on upgrade tests as we're on a stable
|
disable_updates_repos(both => 0);
|
||||||
# release at this point, but it won't *hurt* anything, so no
|
|
||||||
# need to except that case really
|
|
||||||
assert_script_run "dnf config-manager --set-disabled updates-testing";
|
|
||||||
# same for Modular, if appropriate
|
|
||||||
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-modular.repo') {
|
|
||||||
assert_script_run "dnf config-manager --set-disabled updates-testing-modular";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
# set up the workaround repo
|
# set up the workaround repo
|
||||||
setup_workaround_repo;
|
setup_workaround_repo;
|
||||||
|
@ -14,6 +14,10 @@ sub run {
|
|||||||
$version = get_var("UP2REL");
|
$version = get_var("UP2REL");
|
||||||
}
|
}
|
||||||
setup_workaround_repo $version;
|
setup_workaround_repo $version;
|
||||||
|
# disable updates-testing, this is needed for the case of upgrade
|
||||||
|
# from branched to rawhide to ensure we don't get packages from
|
||||||
|
# updates-testing for anything we do between here and upgrade_run
|
||||||
|
disable_updates_repos(both => 0);
|
||||||
assert_script_run 'dnf -y update --refresh', 1800;
|
assert_script_run 'dnf -y update --refresh', 1800;
|
||||||
script_run "reboot", 0;
|
script_run "reboot", 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user