#215 Create testcase to recreate Btrfs layout using Blivet and preserve home.
Merged a month ago by adamwill. Opened 2 months ago by lruzicka.

@@ -0,0 +1,16 @@ 

+ {

+   "area": [

+     {

+       "ypos": 435,

+       "height": 24,

+       "width": 215,

+       "type": "match",

+       "xpos": 413

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "LANGUAGE-english",

+     "anaconda_blivet_mountpoint"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 413,

+       "ypos": 435,

+       "width": 158,

+       "height": 22,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_mountpoint_selected"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 342,

+       "ypos": 307,

+       "width": 112,

+       "height": 18,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_boot_selected"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 277,

+       "ypos": 249,

+       "width": 18,

+       "height": 15,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_delete"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 341,

+       "ypos": 304,

+       "width": 104,

+       "height": 21,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_efi_selected"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 332,

+       "ypos": 309,

+       "height": 16,

+       "width": 49,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_format_button"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 264,

+       "height": 19,

+       "ypos": 330,

+       "width": 40,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_home_selected"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 338,

+       "ypos": 331,

+       "height": 19,

+       "width": 114,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_inactive_boot"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "height": 17,

+       "width": 108,

+       "ypos": 308,

+       "type": "match",

+       "xpos": 340

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_inactive_efi"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 262,

+       "ypos": 331,

+       "width": 58,

+       "height": 17,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_inactive_home"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 357,

+       "ypos": 446,

+       "width": 66,

+       "height": 20,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_name_selected"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 286,

+       "width": 36,

+       "height": 18,

+       "ypos": 377,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_root_exists"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 265,

+       "width": 36,

+       "height": 18,

+       "ypos": 353,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_root_exists"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,15 @@ 

+ {

+   "area": [

+     {

+       "xpos": 331,

+       "ypos": 359,

+       "width": 101,

+       "height": 19,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_part_setmountpoint"

+   ]

+ } 

\ No newline at end of file

@@ -0,0 +1,16 @@ 

+ {

+   "area": [

+     {

+       "xpos": 560,

+       "ypos": 426,

+       "width": 105,

+       "height": 24,

+       "type": "match"

+     }

+   ],

+   "properties": [],

+   "tags": [

+     "anaconda_blivet_btn_setmountpoint",

+     "anaconda_blivet_part_setmountpoint_button"

+   ]

+ } 

\ No newline at end of file

file modified
+24
@@ -932,6 +932,30 @@ 

                  "ROOT_PASSWORD": "weakpassword"

              }

          },

+         "install_blivet_btrfs_preserve_home": {

+             "profiles": {

+                 "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40,

+                 "fedora-Server-dvd-iso-x86_64-*-64bit": 40

+             },

+             "settings": {

+                 "PARTITIONING": "custom_blivet_btrfs_preserve_home",

+                 "HDD_1": "disk_f%CURRREL%_desktop_4_%ARCH%.img",

+                 "POSTINSTALL": "btrfs_preserve_home_check_content",

+                 "ROOT_PASSWORD": "weakpassword"

+             }

+         },

+         "install_blivet_btrfs_preserve_home_uefi": {

+             "profiles": {

+                 "fedora-Server-dvd-iso-aarch64-*-aarch64": 40,

+                 "fedora-Server-dvd-iso-x86_64-*-uefi": 41

+             },

+             "settings": {

+                 "PARTITIONING": "custom_blivet_btrfs_preserve_home",

+                 "HDD_1": "disk_f%CURRREL%_minimal-uefi_3_%ARCH%.img",

+                 "POSTINSTALL": "btrfs_preserve_home_check_content",

+                 "ROOT_PASSWORD": "weakpassword"

+             }

+         },

          "install_blivet_with_swap": {

              "profiles": {

                  "fedora-universal-aarch64-*-aarch64": 50,

@@ -0,0 +1,121 @@ 

+ use base "anacondatest";

+ use strict;

+ use utils;

+ use testapi;

+ use anaconda;

+ 

+ sub run {

+     my $self = shift;

+     # Go to INSTALLATION DESTINATION and ensure the disk is selected.

+     # Because PARTITIONING starts with 'custom_blivet', this will select blivet-gui.

+     select_disks();

+     assert_and_click "anaconda_spoke_done";

+ 

+     if (get_var("UEFI")) {

+         # if we're running on UEFI, let us reformat the UEFI first

+         # Select the UEFI partition if it is not selected by default

+         if (not (check_screen "anaconda_blivet_part_efi_selected", 30)) {

+             assert_and_click "anaconda_blivet_part_inactive_efi";

+             wait_still_screen 5;

+         }

+ 

+         # Go to the partition settings

+         assert_and_click "anaconda_blivet_part_edit";

+         # Select the Format option

+         assert_and_click "anaconda_blivet_part_format";

+     if (not (check_screen "anaconda_blivet_part_fs_efi_filesystem_selected", 30)) {

+         assert_and_click "anaconda_blivet_part_fs_select";

+         assert_and_click "anaconda_blivet_part_fs_efi_filesystem";

+     }

+         # Select the mountpoint field

+ 

+         send_key_until_needlematch("anaconda_blivet_mountpoint_selected", "tab", 3, 5);

+         # Fill in the mountpoint

+         type_very_safely "/boot/efi";

+         # Confirm the settings

+         assert_and_click "anaconda_blivet_part_format_button";

+     }

+ 

+     # Reformat the /boot partition

+     if (check_screen "anaconda_blivet_part_boot_selected", 30) {

+         assert_and_click "anaconda_blivet_part_boot_selected";

+     }

+     else {

+         assert_and_click "anaconda_blivet_part_inactive_boot";

+         wait_still_screen 5;

+     }

+ 

+     # Go to the partition settings

+     assert_and_click "anaconda_blivet_part_edit";

+     # Select the Format option

+     assert_and_click "anaconda_blivet_part_format";

+     # Open the filesystem types and select ext4, if not selected

+     if (not (check_screen "anaconda_blivet_part_fs_ext4_selected",30)) {

+             assert_and_click "anaconda_blivet_part_fs_select";

+             assert_and_click "anaconda_blivet_part_fs_ext4";

+     }

+     # Select the mountpoint field

+     send_key_until_needlematch("anaconda_blivet_mountpoint_selected", "tab", 3, 5);

+     # Fill in the mountpoint

+     type_very_safely "/boot";

+     # Confirm the settings

+     assert_and_click "anaconda_blivet_part_format_button";

+ 

+     # Select the BTRFS part

+     assert_and_click "anaconda_blivet_volumes_icon";

+ 

+     # Select the home partition

+     if (not (check_screen "anaconda_blivet_part_home_selected")) {

+         assert_and_click "anaconda_blivet_part_inactive_home";

+     }

+     # Go to the partition settings

+     assert_and_click "anaconda_blivet_part_edit";

+     # Select the Set mountpoint option

+     assert_and_click "anaconda_blivet_part_setmountpoint";

+     # Type the mountpoint

+     type_very_safely "/home";

+     # Confirm

+     assert_and_click "anaconda_blivet_part_setmountpoint_button";

+     # Wait some time for the pane to settle, without this,

+     # the needle boolean check will fade too fast without actually

+     # taking any effect.

+     sleep 5;

+ 

+     # While there are some root subvolumes (it seems that there can be more than one)

+     # continue to delete them.

+     while (check_screen "anaconda_blivet_part_root_exists", 2) {

+         assert_and_click "anaconda_blivet_part_root_exists";

+         assert_and_click "anaconda_blivet_part_delete";

+         assert_and_click "anaconda_blivet_btn_ok";

+     sleep 5;

+     }

+ 

+     # Add new root partition

+     assert_and_click "anaconda_blivet_part_add";

+     # Select the name textfield

+     send_key_until_needlematch("anaconda_blivet_part_name_selected", "tab", 3, 5);

+     # type the new name

+     type_very_safely "newroot";

+     # Go to next field

+     send_key "tab";

+     # Type the mountpoint

+     type_very_safely "/";

+     # Confirm settings

+     assert_and_click "anaconda_blivet_btn_ok";

+ 

+     # Confirm everything and close the hub

+     assert_and_click "anaconda_spoke_done";

+     assert_and_click "anaconda_part_accept_changes";

+ 

+     # Anaconda hub

+     assert_screen "anaconda_main_hub", 300; #

+ 

+ }

+ 

+ sub test_flags {

+     return { fatal => 1 };

+ }

+ 

+ 1;

+ 

+ # vim: set sw=4 et:

This PR uses the Anaconda Blivet partitioning to recreate a partition
layout while preserving the content of the /home subvolume.

It also adds the postinstall test to check that the home has been
preserved.

rebased onto 6bcc068

2 months ago

Build failed.

1 new commit added

  • Add missing needles.
2 months ago

Build failed.

rebased onto 3f54682

2 months ago

Build succeeded.

rebased onto 388dc33

2 months ago

Build succeeded.

So this kinda conflicts with #208 as-is; I think my plan would be to merge #208 then this. So this will need rebasing on top of what's in #208. You can do it now on top of the branch, or wait for the #208 merge then rebase it to master, I guess. Thanks!

Hey, I am in the middle of a week-long training, so I guess I will wait until #208 is merged and go ahead.

rebased onto d653f48

a month ago

Build succeeded.

why is this here but commented out? is it not needed?

if the above is old and unneeded, please remove it.

1 new commit added

  • Delete unused lines.
a month ago

why is this here but commented out? is it not needed?

I am not sure. I do not have a way to work on PPC, so I cannot test it. This was previously added to another test case by @michelmno , so maybe he might help with it?
However I would like to believe that it is actually needed there if there is an extra partition on PPC.

Build succeeded.

why is this here but commented out? is it not needed?

I am not sure. I do not have a way to work on PPC, so I cannot test it. This was previously added to another test case by @michelmno , so maybe he might help with it?
However I would like to believe that it is actually needed there if there is an extra partition on PPC.

I just did a run of the test with this pr and confirmed related lines are not required, the prep-boot partition (on vda1) is already present and not modified by next actions on vda2.

ok, so please remove the remaining commented code and rebase, then I think we can merge this. thanks!

Sure thing. Thank you very much, @michelmno

1 new commit added

  • Delete unused lines.
a month ago

rebased onto 553d055

a month ago

Build succeeded.

seems there are indentation problems in the file, between if and else blocks, on many lines

Yup, looks off to me too. Please check all the indentations in that file, @lruzicka . =

rebased onto c16982b

a month ago

seems there are indentation problems in the file, between if and else blocks, on many lines

Sorry about that, I hope it's fine now.

Build succeeded.

this set of lines using tab, while not in other places :)
also for the sleep 5 in line 91

rebased onto ecca7d3

a month ago

this set of lines using tab, while not in other places :)
also for the sleep 5 in line 91

I don't know how that might have happened. I am using (at least I believe) the same vim to edit the files with the following settings:

set linebreak
set wrap
set ruler
set autoindent
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab

Shouldn't tabs be converted to spaces automatically with this setting?

Build succeeded.

this set of lines using tab, while not in other places :)
also for the sleep 5 in line 91

I don't know how that might have happened. I am using (at least I believe) the same vim to edit the files with the following settings:

~
set linebreak
set wrap
set ruler
set autoindent
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
~

Shouldn't tabs be converted to spaces automatically with this setting?

I did not tried following suggestion but found need for 'retab' as per https://vim.fandom.com/wiki/Converting_tabs_to_spaces

<whisper>I use gedit. please don't tell anyone</whisper>

OK, I think we're good. Remember fedora_openqa will need updating to add wiki reporting for this and other recent PRs. Thanks!

Pull-Request has been merged by adamwill

a month ago
Metadata
Changes Summary 32
+16
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20201216.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint-20201216.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_selected.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_mountpoint_selected.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_boot_selected.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_boot_selected.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_delete.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_delete.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_efi_selected.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_efi_selected.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_format_button-20201216.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_format_button-20201216.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_home_selected.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_home_selected.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_boot-20201216.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_boot-20201216.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_efi.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_efi.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_home.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_inactive_home.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_name_selected.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_name_selected.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_root_exists.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_root_exists.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_root_exists_alt.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_root_exists_alt.png
+15
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_setmountpoint.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_setmountpoint.png
+16
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_setmountpoint_button.json
+0
file added
needles/anaconda/partitioning/blivet/anaconda_blivet_part_setmountpoint_button.png
+24 -0
file changed
templates.fif.json
+121
file added
tests/disk_custom_blivet_btrfs_preserve_home.pm