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 Dec 12, 2022
1 parent 694655e commit e5ac5c9
Show file tree
Hide file tree
Showing 16 changed files with 336 additions and 55 deletions.
4 changes: 2 additions & 2 deletions lib/Distribution/Sle/15_current.pm
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ use Installation::AddOnProduct::AddOnProductController;
use Installation::RepositoryURL::RepositoryURLController;
use Installation::AddOnProductInstallation::AddOnProductInstallationController;
use Installation::SystemRole::Sle::SystemRoleController;
use Installation::ModuleRegistration::ModuleRegCodeController;
use Installation::ModuleRegistration::SeparateRegCodesController;
use YaST::DNSServer::Sle::DNSServerController;
use YaST::DNSServer::Sle::DNSServerSetupController;

Expand Down Expand Up @@ -63,7 +63,7 @@ sub get_module_registration_installation_report {
}

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

sub get_module_selection {
Expand Down
40 changes: 0 additions & 40 deletions lib/Installation/ModuleRegistration/ModuleRegCodePage.pm

This file was deleted.

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
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
#
# Maintainer: QE YaST <qa-sle-yast@suse.de>

package Installation::ModuleRegistration::ModuleRegCodeController;
package Installation::ModuleRegistration::SeparateRegCodesController;
use strict;
use warnings;
use Installation::ModuleRegistration::ModuleRegCodePage;
use Installation::ModuleRegistration::SeparateRegCodesPage;
use Installation::Popups::ImportUntrustedGnuPGKey;
use YuiRestClient;

Expand All @@ -22,15 +22,15 @@ sub new {

sub init {
my ($self, $args) = @_;
$self->{ModuleRegCodePage} = Installation::ModuleRegistration::ModuleRegCodePage->new({app => YuiRestClient::get_app()});
$self->{SeparateRegCodesPage} = Installation::ModuleRegistration::SeparateRegCodesPage->new({app => YuiRestClient::get_app()});
$self->{ImportUntrustedGnuPGKey} = Installation::Popups::ImportUntrustedGnuPGKey->new({app => YuiRestClient::get_app()});
return $self;
}

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

sub get_untrusted_GPG_popup {
Expand All @@ -39,18 +39,22 @@ sub get_untrusted_GPG_popup {
return $self->{ImportUntrustedGnuPGKey};
}

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

sub add_separate_registration_code {
my ($self, $regcode, $timeout) = @_;
$self->wait_regcode_page({timeout => $timeout, interval => 2,
message => 'Page to insert module registration code did not appear'});
$self->get_module_regcode_page()->set_regcode($regcode);
sub add_separate_we_registration_code {
my ($self, $regcode) = @_;
$self->get_module_regcode_page()->set_we_regcode($regcode);
$self->get_module_regcode_page()->press_next();
}

sub add_separate_ha_registration_code {
my ($self, $regcode) = @_;
$self->get_module_regcode_page()->set_ha_regcode($regcode);
$self->get_module_regcode_page()->press_next();
}

Expand Down
39 changes: 39 additions & 0 deletions lib/Installation/ModuleRegistration/SeparateRegCodesPage.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 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::SeparateRegCodesPage;
use parent 'Installation::Navigation::NavigationBase';
use strict;
use warnings;

sub init {
my ($self) = @_;
$self->SUPER::init();
$self->{lbl_separate_code} = $self->{app}->label({type => 'YLabel', label => qr/The extension you selected needs a separate registration code/});
$self->{txb_we_code} = $self->{app}->textbox({id => '"sle-we"'});
$self->{txb_ha_code} = $self->{app}->textbox({id => '"sle-ha"'});
return $self;
}

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

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

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

1;
29 changes: 29 additions & 0 deletions schedule/yast/textmode/ha_textmode.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: ha_textmode
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
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/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
30 changes: 30 additions & 0 deletions schedule/yast/textmode/ha_textmode_minimal_base.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: ha_textmode_minimal_base
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
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/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
30 changes: 30 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,30 @@
name: ha_textmode_minimal_base
description: |
Installation sles with ha in textmode which selects System Role 'Minimal'.
vars:
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/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
30 changes: 30 additions & 0 deletions schedule/yast/textmode/ha_textmode_s390x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: ha_textmode
description: |
Installation sles with ha in textmode which selects System Role 'Text Mode'.
vars:
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/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
28 changes: 28 additions & 0 deletions schedule/yast/textmode/ha_textmode_skip_registration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: ha_textmode_skip_registration
description: >
Installation SLES + HA in textmode which selects System Role 'Text Mode'.
vars:
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,28 @@
name: ha_textmode_skip_registration_minimal_base
description: >
Installation SLES + HA in textmode which selects System Role 'Minimal'.
vars:
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,29 @@
name: ha_textmode_skip_registration_minimal_base
description: >
Installation SLES + HA in textmode which selects System Role 'Minimal'.
vars:
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

0 comments on commit e5ac5c9

Please sign in to comment.