674087f1b5850ce501d190457eddf400c16df9be
[validation.git] / tests / docker / docker_bench / docker_bench.resource
1 ##############################################################################
2 # Copyright (c) 2019 AT&T Intellectual Property.                             #
3 # Copyright (c) 2019 Nokia.                                                  #
4 #                                                                            #
5 # Licensed under the Apache License, Version 2.0 (the "License");            #
6 # you maynot use this file except in compliance with the License.            #
7 #                                                                            #
8 # You may obtain a copy of the License at                                    #
9 #       http://www.apache.org/licenses/LICENSE-2.0                           #
10 #                                                                            #
11 # Unless required by applicable law or agreed to in writing, software        #
12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT  #
13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.           #
14 # See the License for the specific language governing permissions and        #
15 # limitations under the License.                                             #
16 ##############################################################################
17
18
19 *** Settings ***
20 Library            BuiltIn
21 Library            OperatingSystem
22 Library            Process
23 Library            SSHLibrary
24 Library            String
25
26
27 *** Variables ***
28 ${REPORTDIR}       ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}
29 ${SRCDIR}          /opt/akraino/docker-bench-security
30 ${DESTDIR}         /tmp/docker-bench-security
31 ${NODEDIR}         /tmp/docker-bench-security-run
32 ${SSH_OPTS}        -o StrictHostKeyChecking=no
33
34
35 *** Keywords ***
36 Open Connection And Log In
37     Open Connection        ${HOST}
38     Login With Public Key  ${USERNAME}  ${SSH_KEYFILE}
39
40 Upload Test Software To Nodes
41     Put Directory          ${SRCDIR}  ${DESTDIR}  recursive=True
42     Get Node Addresses
43     Copy Test Software To All Nodes
44
45 Run Test Software On Nodes
46     :FOR  ${node}  IN  @{nodes}
47     \   Execute Command   ssh ${SSH_OPTS} ${node} "cd ${NODEDIR}; sudo ./docker-bench-security.sh -b -l bench.log"
48     \   Execute Command   scp ${SSH_OPTS} ${node}:${NODEDIR}/bench.log ${DESTDIR}/docker-bench-${node}.log
49     \   Execute Command   scp ${SSH_OPTS} ${node}:${NODEDIR}/bench.log.json ${DESTDIR}/docker-bench-${node}.json
50     \   SSHLibrary.Get File  ${DESTDIR}/docker-bench-${node}.log  ${REPORTDIR}/
51     \   SSHLibrary.Get File  ${DESTDIR}/docker-bench-${node}.json  ${REPORTDIR}/
52
53 Get Node Addresses
54     ${stdout}=            Execute Command
55     ...                   kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address'}
56     @{nodes}=             Split String  ${stdout}
57     Set Test Variable     @{nodes}
58
59 Copy Test Software To All Nodes
60     :FOR  ${node}  IN  @{nodes}
61     \   Execute Command   ssh ${SSH_OPTS} ${node} "mkdir -p ${NODEDIR}"
62     \   Execute Command   scp ${SSH_OPTS} -rp ${DESTDIR}/. ${node}:${NODEDIR}
63
64 Remove Test Software From Nodes
65     :FOR  ${node}  IN  @{nodes}
66     \   Execute Command   ssh ${SSH_OPTS} ${node} "rm -rf ${NODEDIR}"
67     Execute Command       rm -rf ${DESTDIR}