@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Feature: 0071 - PXE boot a Retail terminal behind a containerized proxy
Description: In order to manage my terminals in a Retail context
As the system administrator
I PXE boot one of the terminals
File name: proxy_container_retail_pxeboot.feature
Relative path: secondary/proxy_container_retail_pxeboot.feature
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Create hardware type group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "Create Group"
0s
And
I enter "HWTYPE:Intel-Genuine" as "name"
0s
And
I enter "Terminal hardware type: genuine Intel" as "description"
0s
And
I click on "Create Group"
0s
Then
I should see a "System group HWTYPE:Intel-Genuine created." text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Create branch terminals group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "Create Group"
0s
And
I enter "example" as "name"
0s
And
I enter "Terminal branch: example.org" as "description"
0s
And
I click on "Create Group"
0s
Then
I should see a "System group example created." text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Create all terminals group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "Create Group"
0s
And
I enter "TERMINALS" as "name"
0s
And
I enter "All terminals" as "description"
0s
And
I click on "Create Group"
0s
Then
I should see a "System group TERMINALS created." text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Create all branch servers group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "Create Group"
0s
And
I enter "SERVERS" as "name"
0s
And
I enter "All branch servers" as "description"
0s
And
I click on "Create Group"
0s
Then
I should see a "System group SERVERS created." text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Enable Saltboot Group formula for branch terminals group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "example" in the content area
0s
And
I follow "Formulas" in the content area
0s
And
I check the "saltboot-group" formula
0s
And
I click on "Save"
0s
And
I wait until I see "Formula saved." text
0s
Then
the "saltboot-group" formula should be checked
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Parametrize the Saltboot Group formula
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "example" in the content area
0s
And
I follow "Formulas" in the content area
0s
And
I follow first "Saltboot Group" in the content area
0s
And
I enter "proxy.example.org" as "Image download server"
0s
And
I check containerized proxy box
0s
And
I click on "Save Formula"
0s
Then
I should see a "Formula saved" text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Enable Saltboot formula for hardware type group
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "HWTYPE:Intel-Genuine" in the content area
0s
And
I follow "Formulas" in the content area
0s
And
I check the "saltboot" formula
0s
And
I click on "Save"
0s
And
I wait until I see "Formula saved." text
0s
Then
the "saltboot" formula should be checked
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Parametrize the Saltboot formula
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "HWTYPE:Intel-Genuine" in the content area
0s
And
I follow "Formulas" in the content area
0s
And
I follow first "Saltboot" in the content area
0s
And
I click on "Expand All Sections"
0s
And
I enter "disk1" in disk id field
0s
And
I enter "/dev/vda" in disk device field
0s
And
I select "msdos" in disk label field
0s
And
I enter "p1" in first partition id field
0s
And
I enter "256" in first partition size field
0s
And
I select "swap" in first filesystem format field
0s
And
I select "swap" in first partition flags field
0s
And
I press "Add Item" in partitions section
0s
And
I enter "p2" in second partition id field
0s
And
I enter "/data" in second mount point field
0s
And
I select "xfs" in second filesystem format field
0s
And
I enter "secret-password" in second partition password field
0s
And
I press "Add Item" in partitions section
0s
And
I enter "p3" in third partition id field
0s
And
I enter "/" in third mount point field
0s
And
I enter the image name for "pxeboot_minion" in third OS image field
0s
And
I click on "Save Formula"
0s
Then
I should see a "Formula saved" text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: PXE boot the PXE boot minion
When
I reboot the Retail terminal "pxeboot_minion"
0s
And
I wait at most 180 seconds until Salt master sees "pxeboot_minion" as "unaccepted"
0s
And
I accept "pxeboot_minion" key in the Salt master
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Assure the PXE boot minion is onboarded
Given
I am on the Systems page
0s
When
I wait until I see the name of "pxeboot_minion", refreshing the page
0s
And
I follow this "pxeboot_minion" link
0s
And
I follow "Events"
0s
And
I follow "History"
0s
And
I wait until I see "added system entitlement" text, refreshing the page
0s
And
I wait until event "Apply states [saltboot]" is completed
0s
And
I follow "Software" in the content area
0s
And
I follow "Software Channels" in the content area
0s
And
I wait until radio button "SLE-Product-SLES15-SP7-Pool for x86_64" is checked, refreshing the page
0s
And
I wait until event "Package List Refresh" is completed
0s
Then
"pxeboot_minion" should have been reformatted
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Check connection from terminal to branch server
When
I navigate to the Systems overview page of this "pxeboot_minion"
0s
And
I follow "Details" in the content area
0s
And
I follow "Connection" in the content area
0s
Then
I should see a "proxy.example.org" text
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Install a package on the new Retail terminal
When
I navigate to the Systems overview page of this "pxeboot_minion"
0s
And
I install the GPG key of the test packages repository on the PXE boot minion
0s
And
I follow "Software" in the content area
0s
And
I follow "Install"
0s
And
I enter "virgo" as the filtered package name
0s
And
I click on the filter button
0s
And
I check "virgo-dummy-2.0-1.1" in the list
0s
And
I click on "Install Packages"
0s
And
I click on "Confirm"
0s
Then
I should see a "1 package install has been scheduled" text
0s
When
I wait until event "Package Install/Upgrade scheduled by admin" is completed
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Remove the package from the new Retail terminal
When
I navigate to the Systems overview page of this "pxeboot_minion"
0s
And
I follow "Software" in the content area
0s
And
I follow "List / Remove"
0s
And
I enter "virgo" as the filtered package name
0s
And
I click on the filter button
0s
And
I check "virgo-dummy-2.0-1.1" in the list
0s
And
I click on "Remove Packages"
0s
And
I click on "Confirm"
0s
Then
I should see a "1 package removal has been scheduled" text
0s
When
I wait until event "Package Removal scheduled by admin" is completed
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Cleanup: let the terminal be reinstalled again
When
I navigate to the Systems overview page of this "pxeboot_minion"
0s
And
I follow "Remote Command"
0s
And
I enter "#!/bin/sh\nrm /etc/ImageVersion*" as "script_body" text area
0s
And
I click on "Schedule"
0s
Then
I should see a "Remote Command has been scheduled" text
0s
When
I wait until event "Remote Command" is completed
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Cleanup: delete the new Retail terminal
When
I navigate to the Systems overview page of this "pxeboot_minion"
0s
And
I follow "Delete System"
0s
Then
I should see a "Confirm System Profile Deletion" text
0s
When
I click on "Delete Profile"
0s
And
I wait until I see "has been deleted" text
0s
And
I wait until Salt client is inactive on the PXE boot minion
0s
Then
"pxeboot_minion" should not be registered
0s
@containerized_server
@skip_if_github_validation
@build_host
@proxy
@private_net
@pxeboot_minion
@scope_retail
Scenario: Cleanup: delete the terminal groups
When
I follow the left menu "Systems > System Groups"
0s
And
I follow "HWTYPE:Intel-Genuine" in the content area
0s
And
I follow "Delete Group" in the content area
0s
And
I click on "Confirm Deletion"
0s
Then
I should see a "deleted" text
0s
When
I follow "example" in the content area
0s
And
I follow "Delete Group" in the content area
0s
And
I click on "Confirm Deletion"
0s
Then
I should see a "deleted" text
0s
When
I follow "TERMINALS" in the content area
0s
And
I follow "Delete Group" in the content area
0s
And
I click on "Confirm Deletion"
0s
Then
I should see a "deleted" text
0s
When
I follow "SERVERS" in the content area
0s
And
I follow "Delete Group" in the content area
0s
And
I click on "Confirm Deletion"
0s
Then
I should see a "deleted" text
0s