1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-22 14:03:09 +00:00
os-autoinst-distri-fedora/tests/server_cockpit_autoupdate.pm
Adam Williamson 8251756331 Revert to having tests, not the scheduler, download packages (#108)
This effectively reverts 97618193 - but had to be done manually
and adjusted to maintain support for testing side tags and for
testing multiple tasks, since those features were added since
the update ISO change.

The 'scheduler injects ISOs of packages into the tests' approach
was intended to speed things up, especially for large updates,
and it did, but it had a few drawbacks. It means restarting
older tests from the web UI doesn't work as the ISOs get garbage
collected (you have to re-schedule in this case). And it has the
rather large problem that you can now only schedule tests from
the openQA server (or at least a machine with the openQA asset
share mounted), because the package download and ISO creation
just happen wherever the scheduler is running and assume that
the openQA asset share that will be used by the tests is at
/var/lib/openqa/share in that filesystem.

That's too big of a drawback to continue with this approach, IMO,
so this reverts back to the old way of doing things, with a bit
of refactoring to clean up the flow a little, and with support
for testing side tags and multiple tasks maintained.

As a follow-up I'm going to see if I can replace
_download_packages with a much more efficient downloader script
to mitigate the time this process takes on each test, especially
for large updates.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-11 11:31:40 -08:00

49 lines
1.2 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
use packagetest;
use cockpit;
sub run {
my $self = shift;
# Start Cockpit
start_cockpit(login => 1);
# Navigate to the Update screen
select_cockpit_update();
# FIXME Workaround for RHBZ #1765685, remove if that is ever fixed
sleep 30;
# Switch on automatic updates
assert_and_click 'cockpit_updates_auto', '', 120;
assert_and_click 'cockpit_updates_dnf_install', '', 120;
# from 234 onwards, we get a config screen here: "no updates",
# "security updates only", "all updates"
assert_and_click 'cockpit_updates_auto_all';
assert_and_click 'cockpit_save_changes';
# Check the default automatic settings Everyday at 6 o'clock.
assert_screen 'autoupdate_planned_day';
assert_screen 'autoupdate_planned_time';
# Quit Cockpit
quit_firefox;
# Check that the dnf-automatic service has started
assert_script_run "systemctl is-active dnf-automatic-install.timer";
# Check that it is scheduled correctly
validate_script_output "systemctl show dnf-automatic-install.timer | grep TimersCalendar", sub { $_ =~ "06:00:00" };
}
sub test_flags {
return {always_rolllback => 1};
}
1;
# vim: set sw=4 et: