mirror of
https://github.com/rocky-linux/os-autoinst-distri-rocky.git
synced 2024-12-18 09:08:29 +00:00
Merge pull request #202 from tcooper/cockpit-admin-login
Support admin user login in cockpit
This commit is contained in:
commit
cae7a72eba
@ -13,8 +13,12 @@ our @EXPORT = qw(start_cockpit select_cockpit_update check_updates);
|
|||||||
|
|
||||||
sub start_cockpit {
|
sub start_cockpit {
|
||||||
# Starting from a console, get to a browser with Cockpit (running
|
# Starting from a console, get to a browser with Cockpit (running
|
||||||
# on localhost) shown. If $login is truth-y, also log in. Assumes
|
# on localhost) shown. If login is truth-y, also log in. If login
|
||||||
|
# and admin are both truthy, also gain admin privileges. Assumes
|
||||||
# X and Firefox are installed.
|
# X and Firefox are installed.
|
||||||
|
my %args = @_;
|
||||||
|
$args{login} //= 0;
|
||||||
|
$args{admin} //= 1;
|
||||||
my $login = shift || 0;
|
my $login = shift || 0;
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1439429
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1439429
|
||||||
assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx";
|
assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx";
|
||||||
@ -25,11 +29,17 @@ sub start_cockpit {
|
|||||||
# this happened on early Modular Server composes...
|
# this happened on early Modular Server composes...
|
||||||
record_soft_failure "Unbranded Cockpit" if (match_has_tag "cockpit_login_unbranded");
|
record_soft_failure "Unbranded Cockpit" if (match_has_tag "cockpit_login_unbranded");
|
||||||
wait_still_screen(stilltime => 5, similarity_level => 45);
|
wait_still_screen(stilltime => 5, similarity_level => 45);
|
||||||
if ($login) {
|
if ($args{login}) {
|
||||||
type_safely "root";
|
type_safely "test";
|
||||||
wait_screen_change { send_key "tab"; };
|
wait_screen_change { send_key "tab"; };
|
||||||
type_safely get_var("ROOT_PASSWORD", "weakpassword");
|
type_safely get_var("USER_PASSWORD", "weakpassword");
|
||||||
send_key "ret";
|
send_key "ret";
|
||||||
|
if ($args{admin}) {
|
||||||
|
assert_and_click "cockpit_admin_enable";
|
||||||
|
assert_screen "cockpit_admin_password";
|
||||||
|
type_safely get_var("USER_PASSWORD", "weakpassword");
|
||||||
|
send_key "ret";
|
||||||
|
}
|
||||||
assert_screen "cockpit_main";
|
assert_screen "cockpit_main";
|
||||||
# wait for any animation or other weirdness
|
# wait for any animation or other weirdness
|
||||||
# can't use wait_still_screen because of that damn graph
|
# can't use wait_still_screen because of that damn graph
|
||||||
|
16
needles/cockpit/rocky-cockpit_admin_enable-20231122.json
Normal file
16
needles/cockpit/rocky-cockpit_admin_enable-20231122.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 294,
|
||||||
|
"ypos": 242,
|
||||||
|
"width": 102,
|
||||||
|
"height": 16,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"cockpit_admin_enable"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_admin_enable-20231122.png
Normal file
BIN
needles/cockpit/rocky-cockpit_admin_enable-20231122.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"ypos": 242,
|
||||||
|
"width": 102,
|
||||||
|
"type": "match",
|
||||||
|
"xpos": 294,
|
||||||
|
"height": 16
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"cockpit_admin_enable"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_admin_enable_cyan-20231122.png
Normal file
BIN
needles/cockpit/rocky-cockpit_admin_enable_cyan-20231122.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 KiB |
16
needles/cockpit/rocky-cockpit_admin_password-20231122.json
Normal file
16
needles/cockpit/rocky-cockpit_admin_password-20231122.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 255,
|
||||||
|
"ypos": 394,
|
||||||
|
"width": 122,
|
||||||
|
"height": 18,
|
||||||
|
"type": "match"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"cockpit_admin_password"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_admin_password-20231122.png
Normal file
BIN
needles/cockpit/rocky-cockpit_admin_password-20231122.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 72 KiB |
16
needles/cockpit/rocky-cockpit_main-20231122.json
Normal file
16
needles/cockpit/rocky-cockpit_main-20231122.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"xpos": 257,
|
||||||
|
"height": 40,
|
||||||
|
"ypos": 517,
|
||||||
|
"type": "match",
|
||||||
|
"width": 230
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"ENV-DISTRI-rocky",
|
||||||
|
"cockpit_main"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/cockpit/rocky-cockpit_main-20231122.png
Normal file
BIN
needles/cockpit/rocky-cockpit_main-20231122.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
@ -31,7 +31,7 @@ sub run {
|
|||||||
# note: we can't use wait_screen_change, wait_still_screen or
|
# note: we can't use wait_screen_change, wait_still_screen or
|
||||||
# check_type_string in cockpit because of that fucking constantly
|
# check_type_string in cockpit because of that fucking constantly
|
||||||
# scrolling graph
|
# scrolling graph
|
||||||
start_cockpit(1);
|
start_cockpit(login => 1);
|
||||||
# we may have to scroll down before the button is visible
|
# we may have to scroll down before the button is visible
|
||||||
if (check_screen "cockpit_join_domain_button", 5) {
|
if (check_screen "cockpit_join_domain_button", 5) {
|
||||||
click_lastmatch;
|
click_lastmatch;
|
||||||
|
@ -9,7 +9,7 @@ sub run {
|
|||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
# Start Cockpit
|
# Start Cockpit
|
||||||
start_cockpit(1);
|
start_cockpit(login => 1);
|
||||||
|
|
||||||
# Navigate to the Update screen
|
# Navigate to the Update screen
|
||||||
select_cockpit_update();
|
select_cockpit_update();
|
||||||
|
@ -7,7 +7,7 @@ use cockpit;
|
|||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
# run firefox and login to cockpit
|
# run firefox and login to cockpit
|
||||||
start_cockpit(1);
|
start_cockpit(login => 1);
|
||||||
# go to the logs screen
|
# go to the logs screen
|
||||||
assert_and_click "cockpit_logs";
|
assert_and_click "cockpit_logs";
|
||||||
# the date dropdown changes and messes with the button locations, so wait
|
# the date dropdown changes and messes with the button locations, so wait
|
||||||
|
@ -13,7 +13,7 @@ sub run {
|
|||||||
assert_script_run 'systemctl is-active cockpit.socket';
|
assert_script_run 'systemctl is-active cockpit.socket';
|
||||||
assert_script_run 'firewall-cmd --query-service cockpit';
|
assert_script_run 'firewall-cmd --query-service cockpit';
|
||||||
# test cockpit web UI start
|
# test cockpit web UI start
|
||||||
start_cockpit(0);
|
start_cockpit(login => 0);
|
||||||
# quit firefox (return to console)
|
# quit firefox (return to console)
|
||||||
quit_firefox;
|
quit_firefox;
|
||||||
# we don't get back to a prompt instantly and keystrokes while X
|
# we don't get back to a prompt instantly and keystrokes while X
|
||||||
|
@ -16,7 +16,7 @@ sub run {
|
|||||||
verify_installed_packages;
|
verify_installed_packages;
|
||||||
|
|
||||||
# Start Cockpit
|
# Start Cockpit
|
||||||
start_cockpit(1);
|
start_cockpit(login => 1);
|
||||||
# Navigate to update screen
|
# Navigate to update screen
|
||||||
select_cockpit_update();
|
select_cockpit_update();
|
||||||
|
|
||||||
@ -74,13 +74,14 @@ sub run {
|
|||||||
# When Cockpit packages are also included in the updates
|
# When Cockpit packages are also included in the updates
|
||||||
# the user is forced to reconnect, i.e. to restart the Web Application
|
# the user is forced to reconnect, i.e. to restart the Web Application
|
||||||
# and relog for further interaction. We will check if reconnection is
|
# and relog for further interaction. We will check if reconnection is
|
||||||
# needed and if so, we will restart Firefox and login again.
|
# needed and if so, we will restart Firefox and login again. We do
|
||||||
|
# *not* need to gain admin privs again, trying to do so will fail.
|
||||||
#
|
#
|
||||||
last if (check_screen("cockpit_updates_updated"));
|
last if (check_screen("cockpit_updates_updated"));
|
||||||
if (check_screen("cockpit_updates_reconnect", 1)) {
|
if (check_screen("cockpit_updates_reconnect", 1)) {
|
||||||
quit_firefox;
|
quit_firefox;
|
||||||
sleep 5;
|
sleep 5;
|
||||||
start_cockpit(1);
|
start_cockpit(login => 1, admin => 0);
|
||||||
select_cockpit_update();
|
select_cockpit_update();
|
||||||
last;
|
last;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user