Updated hackfest_multivdu: removed SSH access password, public key file will be used...
[osm/tests.git] / robot-systest / testsuite / hackfest_multivdu.robot
1 #   Licensed under the Apache License, Version 2.0 (the "License");
2 #   you may not use this file except in compliance with the License.
3 #   You may obtain a copy of the License at
4 #
5 #       http://www.apache.org/licenses/LICENSE-2.0
6 #
7 #   Unless required by applicable law or agreed to in writing, software
8 #   distributed under the License is distributed on an "AS IS" BASIS,
9 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 #   See the License for the specific language governing permissions and
11 #   limitations under the License.
12
13 *** Settings ***
14 Library   OperatingSystem
15 Library   String
16 Library   Collections
17 Library   Process
18 Library   SSHLibrary
19
20 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/vnfd_lib.robot
21 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/nsd_lib.robot
22 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ns_lib.robot
23 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/connectivity_lib.robot
24 Resource   %{ROBOT_DEVOPS_FOLDER}/lib/ssh_lib.robot
25
26 Variables   %{ROBOT_DEVOPS_FOLDER}/resources/hackfest_multivdu_ns_data.py
27
28 Suite Teardown   Run Keyword And Ignore Error   Suite Cleanup
29
30
31 *** Variables ***
32 ${ns_id}   ${EMPTY}
33 ${username}   ubuntu
34 ${password}   ${EMPTY}
35 ${vnf_member_index}   1
36 ${vnf_ip_addr}   ${EMPTY}
37 ${ns_config}   {vld: [ {name: mgmtnet, vim-network-name: %{VIM_MGMT_NET}} ] }
38 ${wait_guard_for_vm_boot}   50s
39 # ${ns_config}   ${EMPTY}
40
41 *** Test Cases ***
42 Create Hackfest multivdu VNF Descriptor
43     [Tags]   hackfest_multivdu   sanity   regression
44
45     Create VNFD   '%{PACKAGES_FOLDER}/${vnfd_pkg}'
46
47
48 Create Hackfest Multivdu NS Descriptor
49     [Tags]   hackfest_multivdu   sanity   regression
50
51     Create NSD   '%{PACKAGES_FOLDER}/${nsd_pkg}'
52
53 Network Service Instance Test
54     [Tags]   hackfest_multivdu   sanity   regression
55
56     ${status}   ${message}=   Run Keyword And Ignore Error  Variable Should Exist   ${publickey}
57         Run Keyword If   "${status}" == "FAIL"   Set Global Variable   ${publickey}   ${EMPTY}
58     ${id}=   Create Network Service   ${nsd_name}   %{VIM_TARGET}   ${ns_name}   ${ns_config}   ${publickey}
59     Set Suite Variable   ${ns_id}   ${id}
60     Sleep   ${wait_guard_for_vm_boot}  Waiting for VM's daemons to be up and running
61
62 Get Vnf Ip Address
63     [Tags]   hackfest_multivdu   sanity   regression
64
65     ${ip_addr}  Get Vnf Management Ip Address   ${ns_id}   ${vnf_member_index}
66     log   ${ip_addr}
67     Set Suite Variable   ${vnf_ip_addr}   ${ip_addr}
68
69 Test Ping
70     [Tags]   hackfest_multivdu   sanity   regression
71     Test Connectivity   ${vnf_ip_addr}
72
73 Test SSH Access
74     [Tags]   hackfest_multivdu   sanity   regression
75     ${status}   ${message}=   Run Keyword And Ignore Error  Variable Should Exist   ${privatekey}
76         Run Keyword If   "${status}" == "FAIL"   Set Global Variable   ${privatekey}   ${EMPTY}
77     Test SSH Connection   ${vnf_ip_addr}  ${username}  ${password}  ${privatekey} 
78
79 Delete NS Instance Test
80     [Tags]   hackfest_multivdu   sanity   regression   cleanup
81
82     Delete NS   ${ns_name}
83
84
85 Delete NS Descriptor Test
86     [Tags]   hackfest_multivdu   sanity   regression   cleanup
87
88     Delete NSD   ${nsd_name}
89
90
91 Delete VNF Descriptor Test
92     [Tags]   hackfest_multivdu   sanity   regression   cleanup
93
94     Delete VNFD   ${vnfd_name}
95
96
97 *** Keywords ***
98 Suite Cleanup
99     [Documentation]  Test Suit Cleanup: Deleting Descriptor, instance and vim
100
101     Run Keyword If Any Tests Failed  Delete NS   ${ns_name}
102
103     Run Keyword If Any Tests Failed  Delete NSD   ${nsd_name}
104
105     Run Keyword If Any Tests Failed  Delete VNFD   ${vnfd_name}