Skip to content

Commit

Permalink
Enable interactive installation for HA with libyui
Browse files Browse the repository at this point in the history
This pr is to enable interactive installation for HA with libyui rest
api, and setup the cases to YaST job group.
  • Loading branch information
openQA web UI committed Nov 29, 2022
1 parent ab940c2 commit e088f9d
Show file tree
Hide file tree
Showing 14 changed files with 373 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lib/Distribution/Sle/15_current.pm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ sub get_module_regcode {
return Installation::ModuleRegistration::ModuleRegCodeController->new();
}

sub get_module_ha_regcode {
return Installation::ModuleRegistration::ModuleRegCodeController->new();
}

sub get_module_selection {
return Installation::ModuleSelection::ModuleSelectionController->new();
}
Expand Down
40 changes: 40 additions & 0 deletions lib/Installation/ModuleRegistration/ModuleHARegCodePage.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# SUSE's openQA tests
#
# Copyright 2022 SUSE LLC
# SPDX-License-Identifier: FSFAP

# Summary: The module provides interface to act with page that ask for module extra registration code
#
# Maintainer: QE YaST <qa-sle-yast@suse.de>

package Installation::ModuleRegistration::ModuleHARegCodePage;
use parent 'Installation::Navigation::NavigationBase';
use strict;
use warnings;

sub new {
my ($class, $args) = @_;
my $self = bless {
app => $args->{app}
}, $class;
return $self->init();
}

sub init {
my ($self) = @_;
$self->SUPER::init();
$self->{tb_ha_code} = $self->{app}->textbox({id => '"sle-ha"'});
return $self;
}

sub is_shown {
my ($self) = @_;
return $self->{tb_ha_code}->exist();
}

sub set_ha_regcode {
my ($self, $code) = @_;
$self->{tb_ha_code}->set($code);
}

1;
24 changes: 24 additions & 0 deletions lib/Installation/ModuleRegistration/ModuleRegCodeController.pm
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ package Installation::ModuleRegistration::ModuleRegCodeController;
use strict;
use warnings;
use Installation::ModuleRegistration::ModuleRegCodePage;
use Installation::ModuleRegistration::ModuleHARegCodePage;
use Installation::Popups::ImportUntrustedGnuPGKey;
use YuiRestClient;

Expand All @@ -23,6 +24,7 @@ sub new {
sub init {
my ($self, $args) = @_;
$self->{ModuleRegCodePage} = Installation::ModuleRegistration::ModuleRegCodePage->new({app => YuiRestClient::get_app()});
$self->{ModuleHARegCodePage} = Installation::ModuleRegistration::ModuleHARegCodePage->new({app => YuiRestClient::get_app()});
$self->{ImportUntrustedGnuPGKey} = Installation::Popups::ImportUntrustedGnuPGKey->new({app => YuiRestClient::get_app()});
return $self;
}
Expand Down Expand Up @@ -59,4 +61,26 @@ sub trust_gnupg_key {
$self->get_untrusted_GPG_popup()->press_trust();
}

sub get_module_ha_regcode_page {
my ($self) = @_;
die "Extension and Module Registration Codes page" unless $self->{ModuleHARegCodePage}->is_shown();
return $self->{ModuleHARegCodePage};
}

sub wait_ha_regcode_page {
my ($self, $args) = @_;
YuiRestClient::Wait::wait_until(object => sub {
$self->{ModuleHARegCodePage}->is_shown({timeout => 0});
}, %$args);
}

sub add_ha_registration_code {
my ($self, $regcode, $timeout) = @_;
$self->wait_ha_regcode_page({timeout => $timeout, interval => 2,
message => 'Page to insert module registration code did not appear'});
$self->get_module_ha_regcode_page()->set_ha_regcode($regcode);
$self->get_module_ha_regcode_page()->press_next();
}


1;
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ sub init {
$self->{chb_hide_dev_versions} = $self->{app}->checkbox({id => 'filter_devel'});
$self->{rct_items} = $self->{app}->richtext({id => 'items'});
$self->{rct_item_we} = 'sle-we';
$self->{rct_item_ha} = 'sle-ha';
$self->{rct_item_base} = 'sle-module-basesystem';
$self->{rct_item_contm} = 'sle-module-containers';
$self->{rct_item_desktop} = 'sle-module-desktop-applications';
Expand Down
32 changes: 32 additions & 0 deletions schedule/yast/textmode/ha_textmode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: ha_textmode
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
VIDEOMODE: text
DESKTOP: textmode
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/register_via_scc
- installation/module_registration/view_development_versions
- installation/module_registration/register_extensions_and_modules
- installation/module_registration/add_ha_regcode
- installation/add_on_product/skip_install_addons
- installation/system_role/select_role_text_mode
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/hostname_inst
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/handle_reboot
- installation/first_boot
32 changes: 32 additions & 0 deletions schedule/yast/textmode/ha_textmode_minimal_base.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: ha_textmode_minimal_base
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
VIDEOMODE: text
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/register_via_scc
- installation/module_registration/view_development_versions
- installation/module_registration/register_extensions_and_modules
- installation/module_registration/add_ha_regcode
- installation/add_on_product/skip_install_addons
- installation/system_role/select_role_minimal
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/hostname_inst
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/installation_settings/validate_default_target
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/handle_reboot
- installation/first_boot
32 changes: 32 additions & 0 deletions schedule/yast/textmode/ha_textmode_minimal_base_s390x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: ha_textmode_minimal_base
description: |
Installation sles with ha in textmode which selects System Role 'Minimal'.
vars:
VIDEOMODE: text
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/register_via_scc
- installation/module_registration/view_development_versions
- installation/module_registration/register_extensions_and_modules
- installation/module_registration/add_ha_regcode
- installation/add_on_product/skip_install_addons
- installation/system_role/select_role_minimal
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/hostname_inst
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/performing_installation/reconnect_after_reboot
- installation/handle_reboot
- installation/first_boot
33 changes: 33 additions & 0 deletions schedule/yast/textmode/ha_textmode_s390x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: ha_textmode
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
VIDEOMODE: text
DESKTOP: textmode
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/register_via_scc
- installation/module_registration/view_development_versions
- installation/module_registration/register_extensions_and_modules
- installation/module_registration/add_ha_regcode
- installation/add_on_product/skip_install_addons
- installation/system_role/select_role_text_mode
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/hostname_inst
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/performing_installation/reconnect_after_reboot
- installation/handle_reboot
- installation/first_boot
33 changes: 33 additions & 0 deletions schedule/yast/textmode/ha_textmode_skip_registration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: ha_textmode_skip_registration
description: >
Installation SLES + HA in textmode which selects System Role 'Text Mode'.
vars:
VIDEOMODE: text
DESKTOP: textmode
SCC_REGISTER: 'none'
SCC_ADDONS: ha
ADDONS: all-packages
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/skip_registration
- installation/module_selection/select_extension_ha
- installation/add_on_product_installation/accept_add_on_installation
- installation/system_role/select_role_text_mode
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/installation_settings/validate_default_target
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/grub_test
- installation/first_boot
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: ha_textmode_skip_registration_minimal_base
description: >
Installation SLES + HA in textmode which selects System Role 'Minimal'.
vars:
VIDEOMODE: text
DESKTOP: textmode
SCC_REGISTER: 'none'
ADDONS: all-packages
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/skip_registration
- installation/module_selection/select_extension_ha
- installation/add_on_product_installation/accept_add_on_installation
- installation/system_role/select_role_minimal
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/installation_settings/validate_default_target
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/grub_test
- installation/first_boot
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: ha_textmode_skip_registration_minimal_base
description: >
Installation SLES + HA in textmode which selects System Role 'Minimal'.
vars:
VIDEOMODE: text
DESKTOP: textmode
SCC_REGISTER: 'none'
ADDONS: all-packages
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/skip_registration
- installation/module_selection/select_extension_ha
- installation/add_on_product_installation/accept_add_on_installation
- installation/system_role/select_role_minimal
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/installation_settings/validate_default_target
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/performing_installation/reconnect_after_reboot
- installation/handle_reboot
- installation/first_boot
34 changes: 34 additions & 0 deletions schedule/yast/textmode/ha_textmode_skip_registration_s390x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: ha_textmode_skip_registration
description: >
Installation SLES + HA in textmode which selects System Role 'Text Mode'.
vars:
VIDEOMODE: text
DESKTOP: textmode
SCC_REGISTER: 'none'
SCC_ADDONS: ha
ADDONS: all-packages
YUI_REST_API: 1
schedule:
- installation/bootloader_start
- installation/setup_libyui
- installation/access_beta_distribution
- installation/product_selection/install_SLES
- installation/licensing/accept_license
- installation/registration/skip_registration
- installation/module_selection/select_extension_ha
- installation/add_on_product_installation/accept_add_on_installation
- installation/system_role/select_role_text_mode
- installation/partitioning/accept_proposed_layout
- installation/clock_and_timezone/accept_timezone_configuration
- installation/authentication/use_same_password_for_root
- installation/authentication/default_user_simple_pwd
- installation/installation_settings/validate_default_target
- installation/bootloader_settings/disable_boot_menu_timeout
- installation/launch_installation
- installation/confirm_installation
- installation/performing_installation/perform_installation
- installation/logs_from_installation_system
- installation/performing_installation/confirm_reboot
- installation/performing_installation/reconnect_after_reboot
- installation/handle_reboot
- installation/first_boot
23 changes: 23 additions & 0 deletions tests/installation/module_registration/add_ha_regcode.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SUSE's openQA tests
#
# Copyright 2022 SUSE LLC
# SPDX-License-Identifier: FSFAP
#
# Summary: After register Application module
# in "Extension and Module Selection" dialog
# input register code at register page
# Maintainer: QA SLE YaST team <qa-sle-yast@suse.de>

use base 'y2_installbase';
use strict;
use warnings;
use testapi qw(save_screenshot get_var);

sub run {
my $timeout = 60 * get_var('TIMEOUT_SCALE', 1);
my $regcode = get_var('SCC_REGCODE_HA');
$testapi::distri->get_module_ha_regcode()->add_ha_registration_code($regcode, $timeout);
save_screenshot;
}

1;

0 comments on commit e088f9d

Please sign in to comment.