Skip to content

Commit

Permalink
Merge pull request #11448 from rwx788/libyui
Browse files Browse the repository at this point in the history
Adjust lvm+RAID1 tests for the UI changes in the Expert Partitioner
  • Loading branch information
Rodion I committed Nov 27, 2020
2 parents c8e2e97 + 7bd8125 commit 0a3ac7a
Show file tree
Hide file tree
Showing 28 changed files with 510 additions and 116 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -228,4 +228,22 @@ sub set_new_partition_size {
$self->get_edit_partition_size_page()->press_next();
}

sub setup_raid {
my ($self, $args) = @_;
# Create partitions with the data from yaml scheduling file on first disk
my $first_disk = $args->{disks}[0];
foreach my $partition (@{$first_disk->{partitions}}) {
$self->add_partition_on_gpt_disk({disk => $first_disk->{name}, partition => $partition});
}

# Clone partition table from first disk to all other disks
my $numdisks = scalar(@{$args->{disks}}) - 1;
$self->clone_partition_table({disk => $first_disk->{name}, numdisks => $numdisks});

# Create RAID partitions with the data from yaml scheduling file
foreach my $md (@{$args->{mds}}) {
$self->add_raid($md);
}
}

1;
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,30 @@ sub init {
return $self;
}

sub select_disks {
my ($self, @disks) = @_;

my @available = $self->{lst_target_disks}->items();

foreach my $disk (@disks) {
# Find list item which matches wanted disk
if (my ($lst_item) = grep $_ =~ $disk, @available) {
$self->{lst_target_disks}->select($lst_item);
}
else {
die "$disk cannot be found in the list of target disks";
}
}
return $self;
}

sub select_all_disks {
my ($self) = @_;

my @disks = $self->{lst_target_disks}->items();
#Select all disks
foreach (@disks) {
$self->{lst_target_disks}->select($_);
foreach my $disk (@disks) {
$self->{lst_target_disks}->select($disk);
}
return $self;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,12 @@ sub add_partition_on_gpt_disk {

sub clone_partition_table {
my ($self, $args) = @_;
$self->get_expert_partitioner_page()->select_disk($args->{disk});
$self->get_expert_partitioner_page()->open_clone_partition_dialog();
$self->get_clone_partition_dialog()->select_all_disks();
$self->get_expert_partitioner_page()->open_clone_partition_dialog($args->{disk});
if ($args->{target_disks}) {
$self->get_clone_partition_dialog()->select_disks(@{$args->{target_disks}});
} else {
$self->get_clone_partition_dialog()->select_all_disks();
}
$self->get_clone_partition_dialog()->press_ok();
}

Expand Down Expand Up @@ -144,4 +147,35 @@ sub add_logical_volume {
$self->_finish_partition_creation;
}

sub setup_raid {
my ($self, $args) = @_;
# Create partitions with the data from yaml scheduling file on first disk
my @disks = @{$args->{disks}};
my $first_disk = $disks[0];
foreach my $partition (@{$first_disk->{partitions}}) {
$self->add_partition_on_gpt_disk({disk => $first_disk->{name}, partition => $partition});
}
# Clone partition table from first disk to all other disks
my @target_disks = map { $_->{name} } @disks[1 .. $#disks];
$self->clone_partition_table({disk => $first_disk->{name}, target_disks => \@target_disks});
# Create RAID partitions with the data from yaml scheduling file
foreach my $md (@{$args->{mds}}) {
$self->add_raid($md);
}
}

sub setup_lvm {
my ($self, $args) = @_;

foreach my $vg (@{$args->{volume_groups}}) {
$self->add_volume_group($vg);
foreach my $lv (@{$vg->{logical_volumes}}) {
$self->add_logical_volume({
volume_group => $vg->{name},
logical_volume => $lv
});
}
}
}

1;
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ sub open_clone_partition_dialog {
my ($self, $disk) = @_;

$self->{tree_system_view}->exist();
$self->select_item_in_system_view_table('Hard Disks');
$self->select_disk($disk) if $disk;
# Cloning option is disabled if any partition is selected, so selecting disk
$self->{tbl_devices}->select(row => 0);
# This is workaround, because row selection doesn't enable clone item in menu bar
send_key("end");
send_key("home");
$self->{menu_bar}->select('&Device|&Clone Partitions to Another Device...');
return $self;
}
Expand Down
21 changes: 15 additions & 6 deletions lib/YuiRestClient.pm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use constant API_VERSION => 'v1';

use testapi;
use utils 'type_string_slow';
use Utils::Backends 'is_pvm';
use Utils::Backends qw(is_pvm is_hyperv);
use YuiRestClient::App;


Expand All @@ -41,20 +41,29 @@ sub get_app {
return $app;
}

sub setup_libyui {
sub connect_to_app {
my $port = get_var('YUI_PORT');
my $host = get_var('YUI_SERVER');
die "Cannot set libyui REST API server" unless $host;
record_info('PORT', "Used port for libyui: $port");
record_info('SERVER', "Connecting to: $host");
assert_screen('startshell', timeout => 500);
type_string_slow "extend libyui-rest-api\n";
type_string_slow "exit\n";
my $app = YuiRestClient::App->new({port => $port, host => $host, api_version => API_VERSION});
# As we start installer, REST API is not instantly available
$app->connect(timeout => 500, interval => 10);
set_app($app);
}

sub process_start_shell {
assert_screen('startshell', timeout => 500);
type_string_slow "extend libyui-rest-api\n";
type_string_slow "exit\n";
}

sub setup_libyui {
process_start_shell;
connect_to_app;
}

sub teardown_libyui {
assert_screen('startshell', timeout => 100);
type_string_slow "exit\n";
Expand All @@ -81,7 +90,7 @@ sub set_libyui_backend_vars {
} elsif (is_pvm) {
$server = get_var('SUT_IP');
}
die "Cannot set libyui REST API server" unless $server;

set_var('YUI_SERVER', $server);
}

Expand Down
2 changes: 1 addition & 1 deletion lib/bootloader_setup.pm
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ sub select_bootmenu_option {
}

sub get_extra_boot_params {
my @params = split ' ', get_var('EXTRABOOTPARAMS', '');
my @params = split ' ', trim(get_var('EXTRABOOTPARAMS', ''));
return @params;
}

Expand Down
9 changes: 5 additions & 4 deletions schedule/yast/lvm_raid1/lvm+raid1_opensuse.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ description: >
vars:
RAIDLEVEL: 1
LVM: 1
YUI_REST_API: 1
test_data:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_opensuse.yaml
<<: !include test_data/yast/lvm_raid1/lvm+raid1.yaml
schedule:
- installation/isosize
- installation/bootloader_start
- installation/setup_libyui
- installation/welcome
- installation/online_repos
- installation/installation_mode
- installation/logpackages
- installation/system_role
- installation/partitioning
- installation/partitioning_raid
- installation/partitioning_finish
- installation/partitioning/setup_raid1_lvm
- installation/installer_timezone
- installation/user_settings
- installation/resolve_dependency_issues
Expand All @@ -28,6 +28,7 @@ schedule:
- installation/await_install
- installation/logs_from_installation_system
- installation/reboot_after_installation
- installation/teardown_libyui
- installation/grub_test
- installation/first_boot
- console/validate_lvm_raid1
9 changes: 5 additions & 4 deletions schedule/yast/lvm_raid1/lvm+raid1_sle15.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ description: >
vars:
RAIDLEVEL: 1
LVM: 1
YUI_REST_API: 1
test_data:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_sle15.yaml
<<: !include test_data/yast/lvm_raid1/lvm+raid1.yaml
schedule:
- installation/isosize
- installation/bootloader_start
- installation/setup_libyui
- installation/welcome
- installation/accept_license
- installation/scc_registration
- installation/addon_products_sle
- installation/system_role
- installation/partitioning
- installation/partitioning_raid
- installation/partitioning_finish
- installation/partitioning/setup_raid1_lvm
- installation/installer_timezone
- installation/user_settings
- installation/user_settings_root
Expand All @@ -29,6 +29,7 @@ schedule:
- installation/await_install
- installation/logs_from_installation_system
- installation/reboot_after_installation
- installation/teardown_libyui
- installation/grub_test
- installation/first_boot
- console/validate_lvm_raid1
9 changes: 5 additions & 4 deletions schedule/yast/lvm_raid1/lvm+raid1_sle15_svirt-hyperv.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ description: >
vars:
RAIDLEVEL: 1
LVM: 1
YUI_REST_API: 1
test_data:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_sle15_svirt-hyperv.yaml
<<: !include test_data/yast/lvm_raid1/lvm+raid1_hyperv.yaml
schedule:
- installation/isosize
- installation/bootloader_start
- installation/setup_libyui
- installation/welcome
- installation/accept_license
- installation/scc_registration
- installation/addon_products_sle
- installation/system_role
- installation/partitioning
- installation/partitioning_raid
- installation/partitioning_finish
- installation/partitioning/setup_raid1_lvm
- installation/installer_timezone
- installation/user_settings
- installation/user_settings_root
Expand All @@ -28,6 +28,7 @@ schedule:
- installation/start_install
- installation/await_install
- installation/reboot_after_installation
- installation/teardown_libyui
- installation/grub_test
- installation/first_boot
- console/validate_lvm_raid1
9 changes: 5 additions & 4 deletions schedule/yast/lvm_raid1/lvm+raid1_sle15_svirt-xen-hvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ description: >
vars:
RAIDLEVEL: 1
LVM: 1
YUI_REST_API: 1
test_data:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_sle15_svirt-xen.yaml
<<: !include test_data/yast/lvm_raid1/lvm+raid1_svirt-xen.yaml
schedule:
- installation/isosize
- installation/bootloader_start
- installation/setup_libyui
- installation/welcome
- installation/accept_license
- installation/scc_registration
- installation/addon_products_sle
- installation/system_role
- installation/partitioning
- installation/partitioning_raid
- installation/partitioning_finish
- installation/partitioning/setup_raid1_lvm
- installation/installer_timezone
- installation/user_settings
- installation/user_settings_root
Expand All @@ -29,6 +29,7 @@ schedule:
- installation/await_install
- installation/logs_from_installation_system
- installation/reboot_after_installation
- installation/teardown_libyui
- installation/grub_test
- installation/first_boot
- console/validate_lvm_raid1
9 changes: 5 additions & 4 deletions schedule/yast/lvm_raid1/lvm+raid1_sle15_svirt-xen-pv.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ description: >
vars:
RAIDLEVEL: 1
LVM: 1
YUI_REST_API: 1
test_data:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_sle15_svirt-xen.yaml
<<: !include test_data/yast/lvm_raid1/lvm+raid1_svirt-xen.yaml
schedule:
- installation/isosize
- installation/bootloader_start
- installation/setup_libyui
- installation/welcome
- installation/accept_license
- installation/scc_registration
- installation/addon_products_sle
- installation/system_role
- installation/partitioning
- installation/partitioning_raid
- installation/partitioning_finish
- installation/partitioning/setup_raid1_lvm
- installation/installer_timezone
- installation/user_settings
- installation/user_settings_root
Expand All @@ -28,5 +28,6 @@ schedule:
- installation/await_install
- installation/logs_from_installation_system
- installation/reboot_after_installation
- installation/teardown_libyui
- installation/first_boot
- console/validate_lvm_raid1
54 changes: 54 additions & 0 deletions test_data/yast/lvm_raid1/lvm+raid1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
mds:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_mds.yaml
lvm:
<<: !include test_data/yast/lvm_raid1/lvm+raid1_lvm.yaml
disks:
- name: vda
partitions:
- size: 2mb
id: bios-boot
role: raw-volume
- size: 8000mb
role: raw-volume
id: linux-raid
- size: 100mb
role: raw-volume
id: linux-raid
- name: vdb
partitions:
- size: 2mb
id: bios-boot
role: raw-volume
- size: 8000mb
role: raw-volume
id: linux-raid
- size: 100mb
role: raw-volume
id: linux-raid
- name: vdc
partitions:
- size: 2mb
id: bios-boot
role: raw-volume
- size: 8000mb
role: raw-volume
id: linux-raid
- size: 100mb
role: raw-volume
id: linux-raid
- name: vdd
partitions:
- size: 2mb
id: bios-boot
role: raw-volume
- size: 8000mb
role: raw-volume
id: linux-raid
- size: 100mb
role: raw-volume
id: linux-raid
raid1:
disk_to_fail: /dev/vdd2
level: raid1
name: /dev/md0
Loading

0 comments on commit 0a3ac7a

Please sign in to comment.