@skip_if_github_validation
@sle_minion
@scope_action_chains
Feature: 0063 - Action chains on Salt minions
File name: min_action_chain.feature
Relative path: secondary/min_action_chain.feature
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Pre-requisite: downgrade repositories to lower version on Salt minion
When
I enable repository "test_repo_rpm_pool" on this "sle_minion"
00:00:00.838
And
I remove package "andromeda-dummy" from this "sle_minion" without error control
00:00:00.954
And
I remove package "virgo-dummy" from this "sle_minion" without error control
00:00:00.873
And
I install package "milkyway-dummy" on this "sle_minion" without error control
00:00:01.987
And
I install old package "andromeda-dummy-1.0" on this "sle_minion"
00:00:01.947
And
I refresh the metadata for "sle_minion"
00:00:01.021
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Pre-requisite: refresh package list and check installed packages after downgrade on SLE minion
When
I refresh packages list via spacecmd on "sle_minion"
00:00:08.088
And
I wait until refresh package list on "sle_minion" is finished
00:00:14.315
Then
spacecmd should show packages "milkyway-dummy andromeda-dummy-1.0" installed on "sle_minion"
00:00:08.500
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Pre-requisite: wait until downgrade is finished on SLE minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.656
When
I follow "Software" in the content area
00:00:00.098
And
I follow "List / Remove" in the content area
00:00:00.098
And
I enter "andromeda-dummy" as the filtered package name
00:00:00.209
And
I click on the filter button until page does contain "andromeda-dummy-1.0" text
00:00:00.292
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Pre-requisite: ensure the errata cache is computed before testing on Salt minion
When
I follow the left menu "Admin > Task Schedules"
00:00:00.228
And
I follow "errata-cache-default"
00:00:01.147
And
I follow "errata-cache-bunch"
00:00:00.311
And
I click on "Single Run Schedule"
00:00:01.345
Then
I should see a "bunch was scheduled" text
00:00:00.278
And
I wait until the table contains "FINISHED" or "SKIPPED" followed by "FINISHED" in its first rows
00:01:08.334
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Create a custom action chain for the Salt minion
When
I create an action chain with label "salt_minion_action_chain" via API
00:00:00.965
And
I follow the left menu "Schedule > Action Chains"
00:00:00.215
Then
I should see a "salt_minion_action_chain" text
00:00:00.072
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a patch installation to the action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.555
When
I follow "Software" in the content area
00:00:00.100
And
I follow "Patches" in the content area
00:00:00.091
And
I enter "andromeda" as the filtered synopsis
00:00:00.072
And
I click on the filter button
00:00:00.607
And
I check "andromeda-dummy-6789" in the list
00:00:00.085
And
I click on "Apply Patches"
00:00:00.627
And
I check radio button "schedule-by-action-chain"
00:00:10.102
And
I click on "Confirm"
00:00:00.805
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.080
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a package removal to the action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.557
When
I follow "Software" in the content area
00:00:00.076
And
I follow "List / Remove" in the content area
00:00:00.085
And
I enter "milkyway-dummy" as the filtered package name
00:00:00.231
And
I click on the filter button
00:00:00.904
And
I check row with "milkyway-dummy" and arch of "sle_minion"
00:00:00.080
And
I click on "Remove Packages"
00:00:00.668
And
I check radio button "schedule-by-action-chain"
00:00:10.079
And
I click on "Confirm"
00:00:00.585
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.070
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a package installation to an action chain on Salt minion
When
I follow "Software" in the content area
00:00:00.084
And
I follow "Install New Packages" in the content area
00:00:00.086
And
I enter "virgo-dummy" as the filtered package name
00:00:00.174
And
I click on the filter button
00:00:00.804
And
I check "virgo-dummy" in the list
00:00:00.075
And
I click on "Install Packages"
00:00:00.674
And
I check radio button "schedule-by-action-chain"
00:00:10.084
And
I click on "Confirm"
00:00:00.677
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.068
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Create a configuration channel for testing action chain on Salt minion
When
I follow the left menu "Configuration > Channels"
00:00:00.179
And
I follow "Create Config Channel"
00:00:00.253
And
I enter "Action Chain Channel" as "cofName"
00:00:00.095
And
I enter "actionchainchannel" as "cofLabel"
00:00:00.087
And
I enter "This is a test channel" as "cofDescription"
00:00:00.086
And
I click on "Create Config Channel"
00:00:00.628
Then
I should see a "Action Chain Channel" text
00:00:00.071
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a configuration file to configuration channel for testing action chain on Salt minion
When
I follow the left menu "Configuration > Channels"
00:00:00.090
And
I follow "Action Chain Channel"
00:00:00.491
And
I follow "Create Configuration File or Directory"
00:00:00.473
And
I enter "/etc/action-chain.cnf" as "cffPath"
00:00:00.092
And
I enter "Testchain=YES_PLEASE" in the editor
00:00:00.006
And
I click on "Create Configuration File"
00:00:00.668
Then
I should see a "Revision 1 of /etc/action-chain.cnf from channel Action Chain Channel" text
00:00:00.113
And
I should see a "Update Configuration File" button
00:00:00.026
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Download the configuration file from configuration channel
When
I follow the left menu "Configuration > Channels"
00:00:00.089
And
I follow "Action Chain Channel"
00:00:00.407
And
I follow "List/Remove Files"
00:00:00.371
And
I follow "/etc/action-chain.cnf"
00:00:00.411
And
I follow "Download File"
00:00:00.192
And
I wait until file "/tmp/downloads/action-chain.cnf" exists on "localhost"
00:00:00.187
Then
file "/tmp/downloads/action-chain.cnf" should contain "Testchain=YES_PLEASE" on "localhost"
00:00:00.359
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Subscribe system to configuration channel for testing action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.610
When
I follow "Configuration" in the content area
00:00:00.099
And
I follow "Manage Configuration Channels" in the content area
00:00:00.086
And
I follow first "Subscribe to Channels" in the content area
00:00:00.092
And
I check "Action Chain Channel" in the list
00:00:00.073
And
I click on "Continue"
00:00:00.746
And
I click on "Update Channel Rankings"
00:00:00.937
Then
I should see a "Channel Subscriptions successfully changed for" text
00:00:00.091
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a configuration file deployment to the action chain on Salt minion
When
I follow the left menu "Configuration > Channels"
00:00:00.167
And
I follow "Action Chain Channel"
00:00:00.539
And
I follow "Deploy Files" in the content area
00:00:00.090
And
I click on "Deploy All Files"
00:00:00.662
And
I check the "sle_minion" client
00:00:00.084
And
I click on "Confirm & Deploy to Selected Systems"
00:00:00.700
And
I check radio button "schedule-by-action-chain"
00:00:10.100
And
I click on "Deploy Files to Selected Systems"
00:00:00.801
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.076
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add apply highstate to action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.811
When
I follow "States" in the content area
00:00:00.103
And
I check radio button "schedule-by-action-chain"
00:00:10.090
And
I click on "Apply Highstate"
00:00:00.084
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a reboot action to the action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:02.043
When
I follow first "Schedule System Reboot"
00:00:00.646
And
I check radio button "schedule-by-action-chain"
00:00:10.110
And
I click on "Reboot system"
00:00:00.906
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.099
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a remote command to the action chain on Salt minion
When
I follow "Details" in the content area
00:00:00.092
And
I follow "Remote Command" in the content area
00:00:00.124
And
I enter as remote command this script in
00:00:00.089
#!/bin/bash touch /tmp/action_chain_one_system_done
And
I check radio button "schedule-by-action-chain"
00:00:10.073
And
I click on "Schedule"
00:00:00.586
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.089
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Verify the action chain list on Salt minion
When
I follow "Schedule"
00:00:00.302
And
I follow "Action Chains"
00:00:00.332
And
I follow "salt_minion_action_chain"
00:00:00.499
Then
I should see a "1. Apply patch(es) andromeda-dummy-6789 on 1 system" text
00:00:00.119
And
I should see a "2. Remove milkyway-dummy from 1 system" text
00:00:00.090
And
I should see a "3. Install or update virgo-dummy on 1 system" text
00:00:00.087
And
I should see a text like "4. Deploy.*/etc/action-chain.cnf.*to 1 system"
00:00:00.090
And
I should see a "5. Apply Highstate" text
00:00:00.086
And
I should see a "6. Reboot 1 system" text
00:00:00.089
And
I should see a "7. Run a remote command on 1 system" text
00:00:00.087
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Check that a different user cannot see the action chain for Salt minion
Given
I am authorized as "testing" with password "testing"
00:00:02.610
When
I follow "Schedule"
00:00:01.588
And
I follow "Action Chains"
00:00:00.345
Then
I should not see a "salt_minion_action_chain" link
00:00:00.010
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Execute the action chain from the web UI on Salt minion
Given
I am authorized for the "Admin" section
00:00:02.508
When
I am on the Systems overview page of this "sle_minion"
00:00:02.082
And
I follow "Schedule"
00:00:00.299
And
I follow "Action Chains"
00:00:00.244
And
I follow "salt_minion_action_chain"
00:00:00.300
And
I click on "Save and Schedule"
00:00:00.079
Then
I should see a "Action Chain salt_minion_action_chain has been scheduled for execution." text
00:00:00.652
When
I wait for "virgo-dummy" to be installed on "sle_minion"
00:00:30.030
And
I wait at most 300 seconds until file "/tmp/action_chain_one_system_done" exists on "sle_minion"
00:04:05.408
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Create a custom action chain for the Salt minion
When
I create an action chain with label "salt_minion_action_chain_to_delete" via API
00:00:01.030
And
I follow the left menu "Schedule > Action Chains"
00:00:00.103
Then
I should see a "salt_minion_action_chain_to_delete" text
00:00:00.075
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add a remote command to the action chain on Salt minion
Given
I am on the Systems overview page of this "sle_minion"
00:00:01.633
When
I follow "Remote Command"
00:00:00.488
And
I enter as remote command this script in
00:00:00.077
#!/bin/bash uptime
And
I check radio button "schedule-by-action-chain"
00:00:10.091
And
I click on "Schedule"
00:00:00.574
Then
I should see a "Action has been successfully added to the Action Chain" text
00:00:00.097
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Delete the action chain for Salt minion
When
I follow "Schedule"
00:00:00.308
And
I follow "Action Chains"
00:00:00.253
And
I follow "salt_minion_action_chain_to_delete"
00:00:00.307
And
I follow "Delete Action Chains" in the content area
00:00:00.105
And
I click on "Delete"
00:00:00.440
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Downgrade again repositories to lower version on Salt minion
When
I remove package "andromeda-dummy" from this "sle_minion" without error control
00:00:02.785
And
I remove package "virgo-dummy" from this "sle_minion" without error control
00:00:01.938
And
I install package "milkyway-dummy" on this "sle_minion" without error control
00:00:02.216
And
I install old package "andromeda-dummy-1.0" on this "sle_minion"
00:00:02.707
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Refresh package list and check installed packages after second downgrade on SLE minion
When
I refresh packages list via spacecmd on "sle_minion"
00:00:08.729
And
I wait until refresh package list on "sle_minion" is finished
00:00:12.675
Then
spacecmd should show packages "milkyway-dummy andromeda-dummy-1.0" installed on "sle_minion"
00:00:09.288
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Ensure again the errata cache is computed before testing on Salt minion
When
I follow the left menu "Admin > Task Schedules"
00:00:00.186
And
I follow "errata-cache-default"
00:00:01.205
And
I follow "errata-cache-bunch"
00:00:01.211
And
I click on "Single Run Schedule"
00:00:01.341
Then
I should see a "bunch was scheduled" text
00:00:00.278
And
I wait until the table contains "FINISHED" or "SKIPPED" followed by "FINISHED" in its first rows
00:00:23.876
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Add operations to the action chain via API for Salt minions
Given
I want to operate on this "sle_minion"
00:00:00.995
When
I create an action chain with label "salt_minion_api_chain" via API
00:00:00.980
And
I add a package install to the action chain via API
00:00:02.092
And
I add a package removal to the action chain via API
00:00:02.297
And
I add a package upgrade to the action chain via API
00:00:02.141
And
I add the script "exit 1;" to the action chain via API
00:00:01.073
And
I add a system reboot to the action chain via API
00:00:01.051
Running actions: - Package Install/Upgrade - System reboot - Package Removal - Package Install/Upgrade - Run an arbitrary script
- Removed "Package Install/Upgrade" action - Removed "System reboot" action - Removed "Package Removal" action - Removed "Package Install/Upgrade" action - Removed "Run an arbitrary script" action
Then
the current action chain should be empty
00:00:01.035
And
I delete the action chain via API
00:00:00.998
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Run an action chain via API on Salt minion
Given
I want to operate on this "sle_minion"
00:00:00.951
When
I create an action chain with label "salt_minion_multiple_scripts" via API
00:00:00.937
And
I add the script "echo -n 1 >> /tmp/action_chain.log" to the action chain via API
00:00:00.967
And
I add the script "echo -n 2 >> /tmp/action_chain.log" to the action chain via API
00:00:01.058
And
I add the script "echo -n 3 >> /tmp/action_chain.log" to the action chain via API
00:00:01.062
And
I add the script "touch /tmp/action_chain_done" to the action chain via API
00:00:01.019
Running actions: - Run an arbitrary script - Run an arbitrary script - Run an arbitrary script - Run an arbitrary script
When
I schedule the action chain via API
00:00:01.063
And
I wait until there are no more action chains listed via API
00:00:00.974
And
I wait until file "/tmp/action_chain_done" exists on "sle_minion"
00:00:04.073
Then
file "/tmp/action_chain.log" should contain "123" on "sle_minion"
00:00:00.926
When
I wait until there are no more scheduled actions listed via API
00:00:00.956
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Cleanup: remove Salt minion from configuration channel
When
I follow the left menu "Configuration > Channels"
00:00:00.239
And
I follow "Action Chain Channel"
00:00:00.557
And
I follow "Systems" in the content area
00:00:00.097
And
I check the "sle_minion" client
00:00:00.102
And
I click on "Unsubscribe systems"
00:00:00.555
Then
I should see a "Successfully unsubscribed 1 system(s)." text
00:00:00.073
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Cleanup: remove configuration channel for Salt minion
When
I follow the left menu "Configuration > Channels"
00:00:00.081
And
I follow "Action Chain Channel"
00:00:00.407
And
I follow "Delete Channel"
00:00:00.275
And
I click on "Delete Config Channel"
00:00:00.076
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Cleanup: remove packages and repository used in action chain for Salt minion
When
I remove package "andromeda-dummy" from this "sle_minion" without error control
00:00:02.120
And
I remove package "virgo-dummy" from this "sle_minion" without error control
00:00:01.061
And
I remove package "milkyway-dummy" from this "sle_minion" without error control
00:00:02.026
And
I disable repository "test_repo_rpm_pool" on this "sle_minion" without error control
00:00:00.511
@skip_if_github_validation
@sle_minion
@scope_action_chains
Scenario: Cleanup: remove temporary files for testing action chains on Salt minion
When
I run "rm -f /tmp/action_chain.log" on "sle_minion" without error control
00:00:00.497
And
I run "rm -f /tmp/action_chain_done" on "sle_minion" without error control
00:00:00.528
And
I run "rm -f /etc/action-chain.cnf" on "sle_minion" without error control
00:00:00.661
And
I run "rm -f /tmp/action_chain_one_system_done" on "sle_minion" without error control
00:00:00.667