# Copyright 2019 Nokia # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. *** Settings *** Library Collections Library cluster.cluster.Cluster WITH NAME Cluster Library crl.remotesession.remotesession.RemoteSession ... WITH NAME RemoteSession Resource ssh.robot Test Setup ssh.Setup Connections *** Keywords *** Validate Cluster :FOR ${node} IN @{ALL_MASTERS_IN_SYSTEM} \ ${output}= Ssh.Execute Command hostname ${node} \ Should Be Equal ${node} ${output} :FOR ${node} IN @{ALL_PURE_WORKERS_IN_SYSTEM} \ ${output}= Ssh.Execute Command hostname ${node} \ Should Be Equal ${node} ${output} :FOR ${node} IN @{ALL_PURE_STORAGES_IN_SYSTEM} \ ${output}= Ssh.Execute Command hostname ${node} \ Should Be Equal ${node} ${output} ${hosts}= Cluster.Get Hosts :FOR ${node} IN @{hosts} \ ${output}= Ssh.Execute Command hostname ${node.name} \ Should Be Equal ${node.name} ${output} ${masters_len}= Get Length ${ALL_MASTERS_IN_SYSTEM} Should Be True ${masters_len} == 3 ... Number of masters should be 3 not ${masters_len} Verify Database Reboot Management VIP Node RemoteSession.Execute Background Command In Target sleep 1; reboot ... target=sudo-default Sleep 1 RemoteSession.Close ssh.Setup Connections Stop Database [Arguments] ${node} ${result}= RemoteSession.Execute Command In Target ... systemctl stop mariadb.service ${node} Should Be Equal ${result.status} 0 ${result.stderr} Start Database [Arguments] ${node} ${result}= RemoteSession.Execute Command In Target ... systemctl start mariadb.service ${node} Should Be Equal ${result.status} 0 ${result.stderr} Verify Database [Arguments] ${node}=sudo-default ${expected_cluster_size}=3 ${out}= ssh.Execute Command mysql <<< "show status like 'wsrep_cluster_size';" ... ${node} Should match ${out} *wsrep_cluster_size*${expected_cluster_size}* *** Test Cases *** Verify Cluster Config Management Validate Cluster Verify Cluster Config Management After Reboot Management VIP Node Reboot Management VIP Node Wait Until Keyword Succeeds 600s 1s Validate Cluster Verify Database Stop And Start ${first_master}= Collections.Get From List ${ALL_MASTERS_IN_SYSTEM} 0 Stop Database sudo-${first_master} Wait Until Keyword Succeeds 6x 18s Verify Database sudo-${first_master} ... expected_cluster_size=2 Start Database sudo-${first_master} Wait Until Keyword Succeeds 6x 18s Verify Database sudo-${first_master} Verify Create All And No Roles [Documentation] Verify no_roles and all_roles user creation ${all_roles}= Cluster.Create User With Roles all_roles Log ${all_roles} ${no_roles}= Cluster.Create User With Roles no_roles Log ${no_roles} Verify SudoShells [Documentation] Test SudoShells ${hosts}= Cluster.Get Hosts :FOR ${node} IN @{hosts} \ ${result}= RemoteSession.Execute Command In Target whoami \ ... target=sudo-${node.name} \ Should Be Equal ${result.stdout} root ${result}= RemoteSession.Execute Command In Target whoami ... target=sudo-default Should Be Equal ${result.stdout} root Verify Remotescript Default [Documentation] test target remotescript-default ${result}= RemoteSession.Execute Command In Target echo -n out ... target=remotescript-default Should Be Equal ${result.stdout} out