[robot] Add test executed by the suite

Enable a series of test cases that are executed by the test suite for
Setup, Provision and Sanity.

Depends-On : I34dfe1c01b27e5e8ce046de3305dd78c7f9d1383
Signed-off-by: Jose Perez Carranza <jose.perez.carranza@intel.com>

Change-Id: Ia1e4e9ce011e1e527bd1109d1260bdc0b9a410b9
This commit is contained in:
Jose Perez Carranza 2019-08-12 11:18:40 -05:00
parent 4ee20f9e40
commit 4fd5d5371b
12 changed files with 1769 additions and 0 deletions

View File

@ -0,0 +1,257 @@
*** Settings ***
Documentation Tests for provisioning and unlocking controllers, computes and
... storage hosts.
... Author(s):
... - Jose Perez Carranza <jose.perez.carranza@intel.com>
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Variables Variables/Global.py
Resource Resources/HostManagement.robot
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Resource Resources/Provisioning.robot
Library Libraries/common.py
Library Collections
Suite Setup Run Keywords Utils.Stx Suite Setup
... provisioning.Assign Data Interfaces
*** Variables ***
${master_controller} controller-0
${second_controller} controller-1
${backend_type} ceph
${physnet0} physnet0
${physnet1} physnet1
${mtu} 1500
${publicnet} public-net0
${privatenet} private-net0
${internalnet} internal-net0
${externalnet} external-net0
${publicsubnet} public-subnet0
${privatesubnet} private-subnet0
${internalsubnet} internal-subnet0
${externalsubnet} external-subnet0
${publicrouter} public-router0
${privaterouter} private-router0
${lgv_name} nova-local
${nova_size} 100
${nova_size_comp} True
${cgts_part_size} 20
${app_tarball} ${APP_TARBALL_FILE}
${host_image_path} /home/${CLI_USER_NAME}/
${clouds_yml} clouds.yml
${password} ${Config.credentials.STX_DEPLOY_USER_PSWD}
*** Test Cases ***
Provisioning Simplex System
[Tags] Simplex
[Documentation] Validates provisioning of a simplex configuration
... according to steps defined at
... "https://wiki.openstack.org/wiki/StarlingX/Containers/Installation"
Configure OAM Interface ${master_controller}
Run Keyword If '${ENVIRONMENT}'=='baremetal' Run Keywords
... Set NTP Server AND Configure Vswitch Type
Configure Data Interfaces ${master_controller} ${data0if}
... ${data1if} ${physnet0} ${physnet1} ${mtu}
Enable Containerized Services ${master_controller}
Setup Partitions ${master_controller} ${lgv_name} ${nova_size}
... ${cgts_part_size}
Configure Ceph ${master_controller} ${backend_type}
Unlock Master Controller ${master_controller}
Set Ceph Pool Replication
Wait Until Keyword Succeeds 5 min 5 sec
... Check Ceph Status
Put File %{PYTHONPATH}/${app_tarball}
... ${host_image_path}/${app_tarball}
Stage Application Deployment stx-openstack ${app_tarball}
Bring Up Services stx-openstack
Set Ceph Pool Replication
Put File %{PYTHONPATH}/Utils/${clouds_yml}
... ${host_image_path}/${clouds_yml}
${sed_cmd} Catenate
... sed -i 's/PASS/${password}/' ${host_image_path}/${clouds_yml}
Run Command ${sed_cmd}
Set Cluster Endpoints ${clouds_yml}
Provider Network Setup ${physnet0} ${physnet1}
Tenant Networking Setup ${physnet0} ${physnet1} ${externalnet}
... ${publicnet} ${privatenet} ${internalnet} ${publicsubnet}
... ${privatesubnet} ${internalsubnet} ${externalsubnet}
... ${publicrouter} ${privaterouter}
Provisioning Duplex System
[Tags] Duplex
[Documentation] Validates provisioning of a duplex configuration
... according to steps defined at
... "https://wiki.openstack.org/wiki/StarlingX/Containers/
... InstallationOnAIODX"
Configure OAM Interface ${master_controller}
Configure MGMT Interface ${master_controller}
Run Keyword If '${ENVIRONMENT}'=='baremetal' Run Keywords
... Set NTP Server AND Configure Vswitch Type
Configure Data Interfaces ${master_controller} ${data0if}
... ${data1if} ${physnet0} ${physnet1} ${mtu}
Enable Containerized Services ${master_controller}
Setup Partitions ${master_controller} ${lgv_name} ${nova_size}
... ${cgts_part_size}
Configure Ceph ${master_controller} ${backend_type}
Unlock Master Controller ${master_controller}
Wait Until Keyword Succeeds 5 min 5 sec
... Check Ceph Status
# --- Installing Remaining Nodes ---
Run Keyword IF '${ENVIRONMENT}'=='virtual'
... Install Remaining Nodes Virtual
... ELSE Install Remaining Nodes Baremetal
# --- Controller-1 ---
Configure Data Interfaces ${second_controller} ${data0if}
... ${data1if} ${physnet0} ${physnet1} ${mtu}
Enable Containerized Services ${second_controller}
Setup Partitions ${second_controller} ${lgv_name} ${nova_size}
... ${cgts_part_size}
Configure Ceph ${second_controller} ${backend_type}
Unlock Second Controller ${second_controller}
Check Host Readiness ${second_controller}
Wait Until Keyword Succeeds 5 min 5 sec
... Check Ceph Status
Put File %{PYTHONPATH}/${app_tarball}
... ${host_image_path}/${app_tarball}
Stage Application Deployment stx-openstack ${app_tarball}
Bring Up Services stx-openstack
Set Ceph Pool Replication
Put File %{PYTHONPATH}/Utils/${clouds_yml}
... ${host_image_path}/${clouds_yml}
${sed_cmd} Catenate
... sed -i 's/PASS/${password}/' ${host_image_path}/${clouds_yml}
Run Command ${sed_cmd}
Set Cluster Endpoints ${clouds_yml}
Provider Network Setup ${physnet0} ${physnet1}
Tenant Networking Setup ${physnet0} ${physnet1} ${externalnet}
... ${publicnet} ${privatenet} ${internalnet} ${publicsubnet}
... ${privatesubnet} ${internalsubnet} ${externalsubnet}
... ${publicrouter} ${privaterouter}
Provisioning Standard Non-Storage System
[Tags] MN-Local
[Documentation] Validates provisioning of a standard non storage
... configuration according to steps defined at
... "https://wiki.openstack.org/wiki/StarlingX/Containers/
... InstallationOnStandard"
# --- Controller-0 ---
Configure OAM Interface ${master_controller}
Configure MGMT Interface ${master_controller}
Run Keyword If '${ENVIRONMENT}'=='baremetal' Run Keywords
... Set NTP Server AND Configure Vswitch Type
Enable Containerized Services ${master_controller}
Unlock Master Controller ${master_controller}
# --- Installing Remaining Nodes ---
Run Keyword IF '${ENVIRONMENT}'=='virtual'
... Install Remaining Nodes Virtual
... ELSE Install Remaining Nodes Baremetal
# --- Controller-1 ---
Enable Containerized Services ${second_controller}
Provide OAM Network Interface ${second_controller}
Setup Cluster Host Interfaces ${second_controller}
Unlock Second Controller ${second_controller}
Check Host Readiness ${second_controller}
## TO DO : HERE KEYWORD TO CHECK QUORUM ON CEPH
# --- Computes ---
${computes} = Get Compute Nodes
Sort List ${computes}
: FOR ${compute} IN @{computes}
\ Enable Containerized Services ${compute}
\ Run Keyword If '${compute}'=='compute-0'
\ ... Add Ceph Monitor ${compute}
\ Setup Partitions ${compute} ${lgv_name} ${nova_size_comp}
... ${cgts_part_size}
\ Configure Data Interfaces ${compute} ${data0if}
... ${data1if} ${physnet0} ${physnet1} ${mtu}
\ Setup Cluster Host Interfaces ${compute}
\ Unlock Compute ${compute}
\ Check Host Readiness ${compute} 1
## TO DO : HERE KEYWORD TO CHECK QUORUM ON CEPH
# - Enable ODS on Controllers
${controllers} Create List controller-0 controller-1
: FOR ${controller} IN @{controllers}
\ Add ODS To Tier ${controller}
# HERE KEYWORD TO CHECK QUORUM AND STATUS CEPH
Put File %{PYTHONPATH}/${app_tarball}
... ${host_image_path}/${app_tarball}
Stage Application Deployment stx-openstack ${app_tarball}
Bring Up Services stx-openstack
Set Ceph Pool Replication
Put File %{PYTHONPATH}/Utils/${clouds_yml}
... ${host_image_path}/${clouds_yml}
${sed_cmd} Catenate
... sed -i 's/PASS/${password}/' ${host_image_path}/${clouds_yml}
Run Command ${sed_cmd}
Set Cluster Endpoints ${clouds_yml}
Provider Network Setup ${physnet0} ${physnet1}
Tenant Networking Setup ${physnet0} ${physnet1} ${externalnet}
... ${publicnet} ${privatenet} ${internalnet} ${publicsubnet}
... ${privatesubnet} ${internalsubnet} ${externalsubnet}
... ${publicrouter} ${privaterouter}
Provisioning Standard Storage System
[Tags] MN-External
[Documentation] Validates provisioning of a standard storage
... configuration according to steps defined at
... "https://wiki.openstack.org/wiki/StarlingX/Containers/
... InstallationOnStandardStorage"
# --- Controller-0 ---
Configure OAM Interface ${master_controller}
Configure MGMT Interface ${master_controller}
Run Keyword If '${ENVIRONMENT}'=='baremetal' Run Keywords
... Set NTP Server AND Configure Vswitch Type
Enable Containerized Services ${master_controller}
Unlock Master Controller ${master_controller}
# --- Installing Remaining Nodes ---
Run Keyword IF '${ENVIRONMENT}'=='virtual'
... Install Remaining Nodes Virtual
... ELSE Install Remaining Nodes Baremetal
# --- Controller-1 ---
Enable Containerized Services ${second_controller}
Provide OAM Network Interface ${second_controller}
Setup Cluster Host Interfaces ${second_controller}
Unlock Second Controller ${second_controller}
Check Host Readiness ${second_controller}
## TO DO : HERE KEYWORD TO CHECK QUORUM ON CEPH
# --- Storage Nodes ---
# HERE CONTAINERIZED SERVICES
${storages} = Get Storage Nodes
Sort List ${storages}
: FOR ${storage} IN @{storages}
\ Setup Cluster Host Interfaces Storage Node ${storage}
\ Add Storage OSD ${storage} /dev/sdb
\ Unlock Storage ${storage}
## TO DO : HERE KEYWORD TO CHECK QUORUM ON CEPH
# --- Compute Nodes ---
${computes} = Get Compute Nodes
Sort List ${computes}
: FOR ${compute} IN @{computes}
\ Enable Containerized Services ${compute}
\ Label Remote Storage ${compute}
## TODO : According to the wiki comment "Why is this step different
## than Standard?", so using storage keyword meanwhile
\ Setup Cluster Host Interfaces Storage Node ${compute}
\ Configure Data Interfaces ${compute} ${data0if}
... ${data1if} ${physnet0} ${physnet1} ${mtu}
\ Setup Partitions ${compute} ${lgv_name} ${nova_size_comp}
... ${cgts_part_size} True
\ Unlock Compute ${compute}
\ Check Host Readiness ${compute} 1
## TO DO : HERE KEYWORD TO CHECK QUORUM ON CEPH
Put File %{PYTHONPATH}/${app_tarball}
... ${host_image_path}/${app_tarball}
Stage Application Deployment stx-openstack ${app_tarball}
Bring Up Services stx-openstack
Set Ceph Pool Replication
Put File %{PYTHONPATH}/Utils/${clouds_yml}
... ${host_image_path}/${clouds_yml}
${sed_cmd} Catenate
... sed -i 's/PASS/${password}/' ${host_image_path}/${clouds_yml}
Run Command ${sed_cmd}
Set Cluster Endpoints ${clouds_yml}
Provider Network Setup ${physnet0} ${physnet1}
Tenant Networking Setup ${physnet0} ${physnet1} ${externalnet}
... ${publicnet} ${privatenet} ${internalnet} ${publicsubnet}
... ${privatesubnet} ${internalsubnet} ${externalsubnet}
... ${publicrouter} ${privaterouter}

View File

@ -0,0 +1,163 @@
*** Settings ***
Documentation Create instances from image, perform different
... power status and set properties, using Cirros OS and Centos OS.
... Author(s):
... - Juan Carlos Alonso juan.carlos.alonso@intel.com
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name_1} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name} vm-cirros-1
${centos_image} ${CENTOS_FILE}
${centos_image_name} centos
${centos_flavor_name} f1.medium
${centos_flavor_ram} 4096
${centos_flavor_disk} 40
${centos_flavor_vcpus} 2
${centos_instance_name} vm-centos-1
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavors For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavors with or without properties to be used
... to launch Cirros and Centos instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_1}
Create Flavor ${centos_flavor_ram} ${centos_flavor_vcpus}
... ${centos_flavor_disk} ${properties} ${centos_flavor_name}
Create Images For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create images with or without properties to be used
... to launch Cirros and Centos instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Put File %{PYTHONPATH}/${centos_image}
... ${host_image_path}/${centos_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Image ${host_image_path}/${centos_image} ${disk_format}
... ${centos_image_name}
Create Networks For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create networks to be used to launch Cirros and Centos
... instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Launch Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch Cirros and Centos instances.
Create Instance ${network_name} ${cirros_instance_name}
... ${cirros_image_name} ${cirros_flavor_name_1}
Create Instance ${network_name} ${centos_instance_name}
... ${centos_image_name} ${centos_flavor_name}
Suspend Resume Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume Cirros and Centos instances.
Suspend Instance ${cirros_instance_name}
Resume Instance ${cirros_instance_name}
Suspend Instance ${centos_instance_name}
Resume Instance ${centos_instance_name}
Set Error Active Flags Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags to Cirros and Centos
... instances.
Set Error State Instance ${cirros_instance_name} error
Set Active State Instance ${cirros_instance_name} active
Set Error State Instance ${centos_instance_name} error
Set Active State Instance ${centos_instance_name} active
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause Cirros and Centos instances.
Pause Instance ${cirros_instance_name}
Pause Instance ${centos_instance_name}
Unpause Instance ${cirros_instance_name}
Unpause Instance ${centos_instance_name}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start Cirros and Centos instances.
Stop Instance ${cirros_instance_name}
Stop Instance ${centos_instance_name}
Start Instance ${cirros_instance_name}
Start Instance ${centos_instance_name}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock Cirros and Centos instances.
Lock Instance ${cirros_instance_name}
Lock Instance ${centos_instance_name}
Unlock Instance ${cirros_instance_name}
Unlock Instance ${centos_instance_name}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot Cirros and Centos instances.
Reboot Instance ${cirros_instance_name}
Reboot Instance ${centos_instance_name}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild Cirros and Centos instances.
Rebuild Instance ${cirros_instance_name}
Rebuild Instance ${centos_instance_name}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize Cirros instance.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name} ${cirros_flavor_name_1}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties of Cirros and Centos instances.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
Set Instance Property ${cirros_instance_name} ${properties}
Set Instance Property ${centos_instance_name} ${properties}
${properties} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
Unset Instance Property ${cirros_instance_name} ${properties}
Unset Instance Property ${centos_instance_name} ${properties}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all Cirros and Centos instances from computes
... or controllers.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1

View File

@ -0,0 +1,165 @@
*** Settings ***
Documentation Create instances from volume, perform different
... power status and set properties, using Cirros OS.
... Author(s):
... - Juan Carlos Alonso juan.carlos.alonso@intel.com
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name_1} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name_1} vm-cirros-1
${cirros_instance_name_2} vm-cirros-2
${cirros_volume_size} 20
${cirros_volume_name_1} vol-cirros-1
${cirros_volume_name_2} vol-cirros-2
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavors For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavors with or without properties to be used
... to launch Cirros instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_1}
Create Images For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create images with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Networks For Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create networks to be used to launch Cirros
... instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Create Volume For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create volumes with or without properties to be used to
... to launch Cirros instances.
Create Volume ${cirros_volume_size} ${cirros_image_name}
... --bootable ${cirros_volume_name_1}
Create Volume ${cirros_volume_size} ${cirros_image_name}
... --bootable ${cirros_volume_name_2}
Launch Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch Cirros instances.
Create Instance From Volume ${network_name} ${cirros_instance_name_1}
... ${cirros_volume_name_1} ${cirros_flavor_name_1}
Create Instance From Volume ${network_name} ${cirros_instance_name_2}
... ${cirros_volume_name_2} ${cirros_flavor_name_1}
Suspend Resume Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume Cirros instances.
Suspend Instance ${cirros_instance_name_1}
Resume Instance ${cirros_instance_name_1}
Suspend Instance ${cirros_instance_name_2}
Resume Instance ${cirros_instance_name_2}
Set Error Active Flags Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags to Cirros
... instance.
Set Error State Instance ${cirros_instance_name_1} error
Set Active State Instance ${cirros_instance_name_1} active
Set Error State Instance ${cirros_instance_name_2} error
Set Active State Instance ${cirros_instance_name_2} active
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause Cirros instances.
Pause Instance ${cirros_instance_name_1}
Pause Instance ${cirros_instance_name_2}
Unpause Instance ${cirros_instance_name_1}
Unpause Instance ${cirros_instance_name_2}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start Cirros instances.
Stop Instance ${cirros_instance_name_1}
Stop Instance ${cirros_instance_name_2}
Start Instance ${cirros_instance_name_1}
Start Instance ${cirros_instance_name_2}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock Cirros instances.
Lock Instance ${cirros_instance_name_1}
Lock Instance ${cirros_instance_name_2}
Unlock Instance ${cirros_instance_name_1}
Unlock Instance ${cirros_instance_name_2}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot Cirros instances.
Reboot Instance ${cirros_instance_name_1}
Reboot Instance ${cirros_instance_name_2}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild Cirros instances.
Rebuild Instance From Volume ${cirros_instance_name_1}
... ${cirros_image_name}
Rebuild Instance From Volume ${cirros_instance_name_2}
... ${cirros_image_name}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize Cirros instances.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name_1} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name_1} ${cirros_flavor_name_1}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties of Cirros instances.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
Set Instance Property ${cirros_instance_name_1} ${properties}
Set Instance Property ${cirros_instance_name_2} ${properties}
${properties} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
Unset Instance Property ${cirros_instance_name_1} ${properties}
Unset Instance Property ${cirros_instance_name_2} ${properties}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all Cirros instances from computes
... or controllers.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1

View File

@ -0,0 +1,174 @@
*** Settings ***
Documentation Create instances from snapshot, perform different
... power status and set properties, using Cirros OS.
... Author(s):
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Library SSHLibrary
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name_1} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name_1} vm-cirros-1
${cirros_instance_name_2} vm-cirros-2
${cirros_volume_size} 20
${cirros_volume_name} vol-cirros-1
${cirros_snapshot_name_1} snap-cirros-1
${cirros_snapshot_name_2} snap-cirros-2
${cirros_snapshot_size} 20
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavors For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavors with or without properties to be used
... to launch Cirros instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_1}
Create Images For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create images with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Networks For Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create networks to be used to launch Cirros and Centos
... instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Create Volume For Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create volumes with or without properties to be used
... to launch Cirros instances.
Create Volume ${cirros_volume_size} ${cirros_image_name}
... --bootable ${cirros_volume_name}
Create Snapshot For Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create snapshots with or without properties to be used
... to launch Cirros instances.
Create Snapshot ${cirros_volume_name} ${cirros_snapshot_name_1}
Create Snapshot ${cirros_volume_name} ${cirros_snapshot_name_2}
Launch Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch Cirros instances from snapshot.
Create Instance From Snapshot ${network_name} ${cirros_image_name}
... ${cirros_instance_name_1} ${cirros_snapshot_name_1}
... ${cirros_snapshot_size} ${cirros_flavor_name_1}
Create Instance From Snapshot ${network_name} ${cirros_image_name}
... ${cirros_instance_name_2} ${cirros_snapshot_name_2}
... ${cirros_snapshot_size} ${cirros_flavor_name_1}
Suspend Resume Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume Cirros instances.
Suspend Instance ${cirros_instance_name_1}
Resume Instance ${cirros_instance_name_1}
Suspend Instance ${cirros_instance_name_2}
Resume Instance ${cirros_instance_name_2}
Set Error Active Flags Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags to Cirros instances.
Set Error State Instance ${cirros_instance_name_1} error
Set Active State Instance ${cirros_instance_name_1} active
Set Error State Instance ${cirros_instance_name_2} error
Set Active State Instance ${cirros_instance_name_2} active
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause Cirros instances.
Pause Instance ${cirros_instance_name_1}
Pause Instance ${cirros_instance_name_2}
Unpause Instance ${cirros_instance_name_1}
Unpause Instance ${cirros_instance_name_2}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start Cirros instances.
Stop Instance ${cirros_instance_name_1}
Stop Instance ${cirros_instance_name_2}
Start Instance ${cirros_instance_name_1}
Start Instance ${cirros_instance_name_2}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock Cirros instances.
Lock Instance ${cirros_instance_name_1}
Lock Instance ${cirros_instance_name_2}
Unlock Instance ${cirros_instance_name_1}
Unlock Instance ${cirros_instance_name_2}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot Cirros instances.
Reboot Instance ${cirros_instance_name_1}
Reboot Instance ${cirros_instance_name_2}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild Cirros instances.
Rebuild Instance From Volume ${cirros_instance_name_1}
... ${cirros_image_name}
Rebuild Instance From Volume ${cirros_instance_name_2}
... ${cirros_image_name}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize Cirros instances.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name_1} ${cirros_flavor_name_2}
Resize Instance ${cirros_instance_name_1} ${cirros_flavor_name_1}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties of Cirros instances.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
Set Instance Property ${cirros_instance_name_1} ${properties}
Set Instance Property ${cirros_instance_name_2} ${properties}
${properties} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
Unset Instance Property ${cirros_instance_name_1} ${properties}
Unset Instance Property ${cirros_instance_name_2} ${properties}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all instances from computes or
... controllers.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1

View File

@ -0,0 +1,62 @@
***Settings ***
Documentation Test to launch instance through a heat template.
... Author(s):
... - Hector Ivan Ramos Escobar <ramos.escobarx.hector.ivan@intel.com>
... - Juan Carlos Alonso Sanchez <juan.carlos.alonso@intel.com>
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${stack_template} Utils/stack_template.yml
${stack_name_1} stack-cirros-1
${stack_name_2} stack-cirros-2
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name} f1.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavors for Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavors with or without properties to be used
... to launch Cirros instances.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name}
Create Images for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create images with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Networks for Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create networks to be used to launch Cirros
... instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Create Instance Trough Stack
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create a Cirros instance using a heat template
Put File %{PYTHONPATH}/${stack_template}
... ${host_image_path}/${stack_template}
${net_id} Get Net Id ${network_name}
Create Stack ${stack_name_1} ${stack_template} ${net_id}
Create Stack ${stack_name_2} ${stack_template} ${net_id}

View File

@ -0,0 +1,95 @@
*** Settings ***
Documentation Test to create an instance with Cirros.
... Author(s):
... - Hector Ivan Ramos Escobar <ramos.escobarx.hector.ivan@intel.com>
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_image_name_tmp} cirros-tmp
${disk_format} qcow2
${host_image_path} /home/${CLI_USER_NAME}/
${image_disk_size} 10
${image_ram_size} 20
*** Test Cases ***
Create Image For Metrics
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create images with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Update Image Name
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Update image name.
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "created_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${created_at} Get From Dictionary ${result} stdout
${openstack_cmd} Set Variable openstack image set
${cmd} Catenate ${openstack_cmd} --name ${cirros_image_name_tmp}
... ${cirros_image_name}
Run OS Command ${cmd} True
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name_tmp}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "updated_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${first_update} Get From Dictionary ${result} stdout
Should Not Be Equal ${created_at} ${first_update}
${openstack_cmd} Set Variable openstack image set
${cmd} Catenate ${openstack_cmd} --name ${cirros_image_name}
... ${cirros_image_name_tmp}
Run OS Command ${cmd} True
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "updated_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${second_update} Get From Dictionary ${result} stdout
Should Not Be Equal ${first_update} ${second_update}
Update Image Disk Ram Size
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Update image disk size and ram size.
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "updated_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${updated_at} Get From Dictionary ${result} stdout
${openstack_cmd} Set Variable openstack image set
${cmd} Catenate ${openstack_cmd} --min-disk ${image_disk_size}
... ${cirros_image_name}
Run OS Command ${cmd} True
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "updated_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${first_update} Get From Dictionary ${result} stdout
Should Not Be Equal ${updated_at} ${first_update}
${openstack_cmd} Set Variable openstack image set
${cmd} Catenate ${openstack_cmd} --min-ram ${image_ram_size}
... ${cirros_image_name}
Run OS Command ${cmd} True
${openstack_cmd} Catenate openstack image show
... ${cirros_image_name}
${cmd} Catenate SEPARATOR=| ${openstack_cmd} grep "updated_at"
... awk '{print $4}'
&{result} Run OS Command ${cmd}
${second_update} Get From Dictionary ${result} stdout
Should Not Be Equal ${first_update} ${second_update}

View File

@ -0,0 +1,56 @@
*** Settings ***
Documentation Check the health of PODs services; update and apply the
... helm chart via system application-apply.
... Author(s):
... - Hector Ivan Ramos Escobar <ramos.escobarx.hector.ivan@intel.com>
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Resource Resources/Kubernetes.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... Utils.Stx Suite TearDown
*** Variables ***
${pod_yml} testpod.yaml
${pod_name} testpod
${chart_manifest} helm-charts-manifest.tgz
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
OpenStack PODs Healthy
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Check all OpenStack pods are healthy, in Running or
... Completed state.
Check System Application Status stx-openstack applied
Check PODs Health
Reapply STX OpenStack
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Re apply stx openstack application without any
... modification to helm charts.
System Application Apply stx-openstack
STX OpenStack Override Update Reset
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Helm override for OpenStack nova chart and reset.
Helm Override OpenStack stx-openstack nova openstack
System Application Apply stx-openstack
Check Helm Override OpenStack
Kube System Services
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Check pods status and kube-system services are
... displayed.
Check PODs Health
Check Kube System Services
Create Check Delete POD
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch a POD via kubectl.
Put File %{PYTHONPATH}/Utils/${pod_yml}
... ${host_image_path}/${pod_yml}
Create POD ${pod_yml} ${pod_name}
Wait Until Keyword Succeeds 1 min 5 sec Check POD ${pod_name}
Delete POD ${pod_name}

View File

@ -0,0 +1,81 @@
*** Settings ***
Documentation Add hosts and perform swacts to test host management.
... Author(s):
... - Hector Ivan Ramos Escobar <ramos.escobarx.hector.ivan@intel.com>
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Resource Resources/Provisioning.robot
Resource Resources/Utils.robot
Resource Resources/HostManagement.robot
Resource Resources/OpenStack.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... Utils.Stx Suite TearDown
*** Variables ***
${controller_0} controller-0
${controller_1} controller-1
${add_error_msg} Host-add Rejected: Adding a host on a simplex system
... is not allowed.
${swact_error_msg} Swact action not allowed for a simplex system.
${lock_error_msg} Rejected: Can not lock an active controller.
*** Test Cases ***
Add Controller Host Simplex
[Tags] Simplex
[Documentation] Try to add a new controller on a Simplex
... configuration, expect to fail.
&{result} Run Command system host-add -n ${controller_1}
${output} Get From Dictionary ${result} stderr
Should Contain ${output} ${add_error_msg}
Swact Controller Host Simplex
[Tags] Simplex
[Documentation] Try to perform a swact controller on a Simplex
... configuration, expect to fail.
&{result} Run Command system host-swact ${controller_0}
${output} Get From Dictionary ${result} stderr
Should Contain ${output} ${swact_error_msg}
Lock Active Controller
[Tags] Duplex MN-Local MN-External
[Documentation] Try to perform a lock to the Active controller
${system_cmd} Catenate SEPARATOR=| system host-show ${controller_0}
... grep capabilities awk -F"'" '{print$8}'
&{result} Run Command ${system_cmd}
${personality} Get From Dictionary ${result} stdout
${active_controller} Set Variable If
... '${personality}'=='Controller-Active' controller-0 controller-1
&{result} Run Command system host-lock ${active_controller}
${output} Get From Dictionary ${result} stderr
Should Contain ${output} ${lock_error_msg}
Lock Unlock Standby Controller
[Tags] Duplex MN-Local MN-External
[Documentation] Perform a lock/unlock to the Standby controller
${system_cmd} Catenate SEPARATOR=| system host-show ${controller_0}
... grep capabilities awk -F"'" '{print$8}'
&{result} Run Command ${system_cmd}
${personality} Get From Dictionary ${result} stdout
${standby_controller} Set Variable If
... '${personality}'=='Controller-Standby' controller-0 controller-1
Lock Node ${standby_controller}
Unlock Controller ${standby_controller}
Lock Unlock Compute Hosts
[Tags] MN-Local MN-External
[Documentation] Perform a lock/unlock to the compute nodes
${computes} = Get Compute Nodes
Sort List ${computes}
: FOR ${compute} IN @{computes}
\ Lock Node ${compute}
\ Unlock Compute ${compute}
Lock Unlock Storage Hosts
[Tags] MN-External
[Documentation] Perform a lock/unlock to the storage nodes
${storages} = Get Storage Nodes
Sort List ${storages}
: FOR ${storage} IN @{storages}
\ Lock Node ${storage}
\ Unlock Storage ${storage}

View File

@ -0,0 +1,118 @@
*** Settings ***
Documentation Install and configure StarlingX ISO.
... Author(s):
... - Jose Perez Carranza <jose.perez.carranza@intel.com>
... - Humberto Perez Rodriguez <humberto.i.perez.rodriguez@intel.com>
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Library SSHLibrary
Library Collections
Library OperatingSystem
Library Process
Library String
Library Qemu/qemu_setup.py
Library Libraries/iso_setup.py
Library Libraries/common.py
Library Libraries/pxe_server.py
Resource Resources/Utils.robot
Resource Resources/Provisioning.robot
Variables Variables/config_init.py Config
... %{PYTHONPATH}/Config/config.ini
Suite TearDown Utils.Stx Suite TearDown
*** Variables ***
${destination} /home/${CLI_USER_NAME}/localhost.yml
${source} %{PYTHONPATH}/Config/${Config.general.CONFIGURATION_FILE}
${qemu_script} %{PYTHONPATH}/Qemu/qemu_setup.py
${iso} %{PYTHONPATH}/${STX_ISO_FILE}
${yaml} %{PYTHONPATH}/${CONFIG.general.ENV_YAML_FILE}
${kernel_option} ${CONFIG.iso_installer.KERNEL_OPTION}
${source_pkg} /var/www/html/stx/bootimage/Packages
${source_repo} /var/www/html/stx/bootimage/repodata
${password} ${Config.credentials.STX_DEPLOY_USER_PSWD}
*** Test Cases ***
Qemu Libvirt VMs Setup Virtual
[Tags] Simplex Duplex MN-Local MN-External virtual
[Documentation] Qemu-Libvirt VMs setup and configuration for
... StarlingX virtual deployment.
# -- Install ISO on a VM
${result} Run Process python ${qemu_script} -i ${iso} -c ${yaml}
... shell=True
log ${result.stdout}
log ${result.stderr}
Log To Console ${result.stderr}
Should Be Equal As Integers ${result.rc} 0
GRUB Checker For BIOS Virtual
[Tags] Simplex Duplex MN-Local MN-External virtual
[Documentation] Check grub cmd boot line against the ones in StarlingX
... ISO file.
${grub_command_line} Get Cmd Boot Line
${status} Grub Checker ${iso} vbios ${kernel_option}
... ${grub_command_line}
Should Be Equal As Strings ${status} match
... msg="Kernel boot option does not match" values=False
Install ISO Virtual
[Tags] Simplex Duplex MN-Local MN-External virtual
[Documentation] Installation of controller node and define the
... connection to be used on other test cases.
# -- Install ISO on a VM
${controller_connection} Install Iso
Set Suite Variable ${controller_connection}
Check ISO Basic Mounting BareMetal
[Tags] Simplex Duplex MN-Local MN-External baremetal
[Documentation] Test basic ISO structure and funcntionality.
Mount Iso On Pxe ${iso}
Install ISO BareMetal
[Tags] Simplex Duplex MN-Local MN-External baremetal
[Documentation] Installation of controller node and define the
... connection to be used on other test cases.
${master_controller} Install Iso Master Controller
Run Keyword If '${CONFIGURATION_TYPE}'!='Simplex'
... Turn Off Installation Nodes
Ansible Bootstrap Configuration
[Tags] Simplex Duplex MN-Local MN-External virtual baremetal
[Documentation] Configure controller with local bootstrap playbook.
# -- Copy localhost.yml file to controller
Wait Until Keyword Succeeds 5 min 5 sec
... Connect to Controller Node ${CLI_USER_NAME} ${CLI_USER_PASS}
... ${CONFIG.general.IP_UNIT_0_ADDRESS}
SSHLibrary.Put File ${source} ${destination}
${sed_cmd} Catenate
... sed -i 's/ANSIBLE_PASS/${password}/' ${destination}
Run Command ${sed_cmd}
${sed_cmd} Catenate
... sed -i 's/ADMIN_PASS/${password}/' ${destination}
Run Command ${sed_cmd}
${bootstrap} Set Variable
... /usr/share/ansible/stx-ansible/playbooks/bootstrap/bootstrap.yml
Run Command ansible-playbook ${bootstrap} True 3600 ~$
Copy Install Packages
[Tags] Duplex MN-Local MN-External baremetal
[Documentation] Copy packages required to install secondary nodes.
# -- Copy required packages post install --Workaround for pxe install--
Wait Until Keyword Succeeds 5 min 5 sec
... Connect to Controller Node ${CLI_USER_NAME} ${CLI_USER_PASS}
... ${CONFIG.general.IP_UNIT_0_ADDRESS}
# -- Get current release
${cmd_current_version} Catenate SEPARATOR=| cat /etc/build.info
... grep SW_VERSION awk '{ split($1, v, "="); print v[2]}'
&{result} Run Command ${cmd_current_version} True
${current_version} Get From Dictionary ${result} stdout
# -- Transfer directories with packages
${destination_dir} Set Variable /home/${CLI_USER_NAME}/
${destination_move} Set Variable
... /www/pages/feed/rel-${${current_version.strip('"')}}
SSHLibrary.Put Directory ${source_pkg} ${destination_dir} mode=0755
SSHLibrary.Put Directory ${source_repo} ${destination_dir} mode=0755
Execute Sudo Command
... mv ${destination_dir}/Packages ${destination_move}/Packages
Execute Sudo Command
... mv ${destination_dir}/repodata ${destination_move}/repodata
SSHLibrary.Close Connection

View File

@ -0,0 +1,184 @@
*** Settings ***
Documentation Tests to create and stress instances from an image, perform
... different power status and set properties, using Cirros OS
... Author(s):
... - Juan Carlos Alonso juan.carlos.alonso@intel.com
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Resource Resources/Stress.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name} vm-cirros
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavor for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavor with or without properties to be used
... to launch Cirros instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${properties} ${cirros_flavor_name}
Create Image for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create image with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Network for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create network to be used to launch Cirros instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Launch Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch 9 Cirros instances.
:FOR ${i} IN RANGE 1 10
\ Create Instance ${network_name} ${cirros_instance_name}-${i}
... ${cirros_image_name} ${cirros_flavor_name}
Suspend Resume Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Suspend Resume Instance ${vm}
Set Error Active Flags Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags to all Cirros instances
... 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Error Active Instance ${vm}
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Pause Unpause Instance ${vm}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start all Cirros instances 10 times.
${openstack_cmd}= Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Stop Start Instance ${vm}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Lock Unlock Instance ${vm}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Reboot Instance ${vm}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Rebuild Instance ${vm}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize all Cirros instances 10 times.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Resize Instance ${vm} ${cirros_flavor_name}
... ${cirros_flavor_name_2}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties to all Cirros instances 10 times.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
${properties_2} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Property Instance ${vm} ${properties}
... ${properties_2}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all Cirros instances from computes
... or controllers 10 times.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1

View File

@ -0,0 +1,202 @@
*** Settings ***
Documentation Tests to create and stress instances from volume, perform
... different power status and set properties, using Cirros OS.
... Author(s):
... - Juan Carlos Alonso juan.carlos.alonso@intel.com
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Resource Resources/Stress.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name} vm-cirros
${cirros_volume_size} 20
${cirros_volume_name} vol-cirros
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavor for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavor with or without properties to be used
... to launch Cirros instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name}
Create Image for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create image with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Network for Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create network to be used to launch Cirros
... instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Create Volumes for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create volumes with or without properties to be used to
... to launch Cirros instances.
:FOR ${i} IN RANGE 1 10
\ Create Volume ${cirros_volume_size} ${cirros_image_name}
... --bootable ${cirros_volume_name}-${i}
Launch Instances From Volumes
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch 9 Cirros instances from volumes.
${i} Set Variable 1
${openstack_cmd}= Set Variable openstack volume list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vol_list} Convert Response To List ${result}
: FOR ${vol} IN @{vol_list}
\ Create Instance From Volume ${network_name}
... ${cirros_instance_name}-${i} ${vol} ${cirros_flavor_name}
\ ${i} Evaluate ${i} + 1
Suspend Resume Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Suspend Resume Instance ${vm}
Set Error Active Flags Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags to all Cirros
... instances 10 times.
${openstack_cmd}= Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Error Active Instance ${vm}
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Suspend Resume Instance ${vm}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start all Cirros instances.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Stop Start Instance ${vm}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Lock Unlock Instance ${vm}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot all Cirros instances.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Reboot Instance ${vm}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild all Cirros instances.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Rebuild Instance From Volume ${vm} ${cirros_image_name}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize all Cirros instances.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Resize Instance ${vm} ${cirros_flavor_name}
... ${cirros_flavor_name_2}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties to all Cirros instances 10 times.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
${properties_2} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Property Instance ${vm} ${properties}
... ${properties_2}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all Cirros instances from computes
... or controllers 10 times.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1

View File

@ -0,0 +1,212 @@
*** Settings ***
Documentation Tests to create and stress instances from an snapshot, perform
... different power status and set properties, using Cirros OS.
... Author(s):
... - Juan Carlos Alonso <juan.carlos.alonso@intel.com>
Library SSHLibrary
Resource Resources/Utils.robot
Resource Resources/OpenStack.robot
Resource Resources/Stress.robot
Suite Setup Utils.Stx Suite Setup
Suite TearDown Run Keywords
... OpenStack.Openstack Cleanup All
... Utils.Stx Suite TearDown
*** Variables ***
${cirros_image} ${CIRROS_FILE}
${cirros_image_name} cirros
${cirros_flavor_name} f1.small
${cirros_flavor_name_2} f2.small
${cirros_flavor_ram} 2048
${cirros_flavor_disk} 20
${cirros_flavor_vcpus} 1
${cirros_instance_name} vm-cirros
${cirros_volume_size} 20
${cirros_volume_name} vol-cirros
${cirros_snapshot_name} snap-cirros
${cirros_snapshot_size} 20
${network_name} network-1
${subnet_name} subnet-1
${disk_format} qcow2
${subnet_range} 192.168.0.0/24
${subnet_extras} --ip-version 4 --dhcp ${subnet_name}
${flavor_property_1} --property sw:wrs:guest:heartbeat='false'
${flavor_property_2} --property hw:cpu_policy='shared'
${instance_property_1} --property sw:wrs:auto_recovery
${instance_property_2} --property hw:wrs:live_migration_max_downtime
${instance_property_3} --property hw:wrs:live_migration_timeout
${host_image_path} /home/${CLI_USER_NAME}/
*** Test Cases ***
Create Flavor for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create flavor with or without properties to be used
... to launch Cirros instances.
${properties} Catenate ${flavor_property_1} ${flavor_property_2}
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name}
Create Image for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create image with or without properties to be used
... to launch Cirros instances.
Put File %{PYTHONPATH}/${cirros_image}
... ${host_image_path}/${cirros_image}
Create Image ${host_image_path}/${cirros_image} ${disk_format}
... ${cirros_image_name}
Create Network for Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create network to be used to launch Cirros instances.
Create Network ${network_name}
Create Subnet ${network_name} ${subnet_range} ${subnet_extras}
Create Volume for Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create volume with or without properties to be used
... to launch Cirros instances.
Create Volume ${cirros_volume_size} ${cirros_image_name}
... --bootable ${cirros_volume_name}
Create Snapshots for Instance
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Create snapshots with or without properties to be used
... to launch Cirros instances.
:FOR ${i} IN RANGE 1 10
\ Create Snapshot ${cirros_volume_name}
... ${cirros_snapshot_name}-${i}
Launch Instances From Snapshots
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Launch 9 Cirros instances from snapshots.
${i} Set Variable 1
${openstack_cmd} Set Variable openstack volume snapshot list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{snap_list} Convert Response To List ${result}
: FOR ${snap} IN @{snap_list}
\ Create Instance From Snapshot ${network_name}
... ${cirros_image_name} ${cirros_instance_name}-${i} ${snap}
... ${cirros_snapshot_size} ${cirros_flavor_name}
\ ${i} Evaluate ${i} + 1
Suspend Resume Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Suspend and Resume all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Suspend Resume Instance ${vm}
Set Error Active Flags Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set 'Error' and 'Active' flags all Cirros instances
... 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Error Active Instance ${vm}
Pause Unpause Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Pause and Unpause all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Suspend Resume Instance ${vm}
Stop Start Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Stop and Start all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Stop Start Instance ${vm}
Lock Unlock Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Lock and Unlock all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Lock Unlock Instance ${vm}
Reboot Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Reboot all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Reboot Instance ${vm}
Rebuild Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Rebuild all Cirros instances 10 times.
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Rebuild Instance From Volume ${vm} ${cirros_image_name}
Resize Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Resize all Cirros instances 10 times.
Create Flavor ${cirros_flavor_ram} ${cirros_flavor_vcpus}
... ${cirros_flavor_disk} ${cirros_flavor_name_2}
${openstack_cmd} Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Resize Instance ${vm} ${cirros_flavor_name}
... ${cirros_flavor_name_2}
Set Unset Properties Instances
[Tags] Simplex Duplex MN-Local MN-External
[Documentation] Set Unset properties of all Cirros instances 10 times.
${properties} Catenate ${instance_property_1}='true'
... ${instance_property_2}='500' ${instance_property_3}='180'
${properties_2} Catenate ${instance_property_1}
... ${instance_property_2} ${instance_property_3}
${openstack_cmd}= Set Variable openstack server list
${cmd} Catenate SEPARATOR=| ${openstack_cmd} awk '{print$4}'
... grep -v "Name"
&{result} Run OS Command ${cmd} True
@{vm_list} Convert Response To List ${result}
: FOR ${vm} IN @{vm_list}
\ Stress Set Property Instance ${vm} ${properties}
... ${properties_2}
Evacuate Instances From Hosts
[Tags] Duplex MN-Local MN-External
[Documentation] Evacuate all Cirros instances from computes or
... controllers 10 times.
Run Keyword If '${CONFIGURATION_TYPE}' == 'Duplex'
... Run Keywords Evacuate Instances controller-0 AND
... Evacuate Instances controller-1
... ELSE IF '${CONFIGURATION_TYPE}' == 'MN-Local' or '${CONFIGURATION_TYPE}' == 'MN-External'
... Run Keywords Evacuate Instances compute-0 AND
... Evacuate Instances compute-1