3308dc2ee22992554d7251773ed4184959233212
[integration.git] / test / csit / libraries / VtnMaKeywords.txt
1 *** Settings ***
2 Library           SSHLibrary
3 Library           String
4 Library           DateTime
5 Library           Collections
6 Library           json
7 Library           RequestsLibrary
8 Variables         ../variables/Variables.py
9 Resource          ./Utils.robot
10
11 *** Variables ***
12 ${REST_CONTEXT_VTNS}    controller/nb/v2/vtn/default/vtns
13 ${VERSION_VTN}          controller/nb/v2/vtn/version
14 ${VTN_INVENTORY}        restconf/operational/vtn-inventory:vtn-nodes
15
16 *** Keywords ***
17 Start SuiteVtnMa
18     [Documentation]  Start VTN Manager Init Test Suite
19     Create Session    session    http://${CONTROLLER}:${RESTPORT}    auth=${AUTH}    headers=${HEADERS}
20     BuiltIn.Wait_Until_Keyword_Succeeds    30    3     Fetch vtn list
21     Start Suite
22
23 Stop SuiteVtnMa
24     [Documentation]  Stop VTN Manager Test Suite
25     Delete All Sessions
26     Stop Suite
27
28 Start SuiteVtnMaTest
29     [Documentation]  Start VTN Manager Test Suite
30     Create Session    session    http://${CONTROLLER}:${RESTPORT}    auth=${AUTH}    headers=${HEADERS}
31
32 Stop SuiteVtnMaTest
33     [Documentation]  Stop VTN Manager Test Suite
34     Delete All Sessions
35
36 Fetch vtn list
37     [Documentation]    Check if VTN Manager is up.
38     ${resp}=    RequestsLibrary.Get    session    ${REST_CONTEXT_VTNS}
39     Should Be Equal As Strings    ${resp.status_code}    200
40
41 Fetch vtn switch inventory
42     [Arguments]    ${sw_name}
43     [Documentation]    Check if Switch is detected.
44     ${resp}=    RequestsLibrary.Get    session    ${VTN_INVENTORY}/vtn-inventory:vtn-node/${sw_name}
45     Should Be Equal As Strings    ${resp.status_code}    200
46
47 Add a vtn
48     [Arguments]    ${vtn_name}    ${vtn_data}
49     [Documentation]    Create a vtn with specified parameters.
50     ${resp}=    RequestsLibrary.Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}    data=${vtn_data}
51     Should Be Equal As Strings    ${resp.status_code}    201
52
53 Delete a vtn
54     [Arguments]    ${vtn_name}
55     [Documentation]    Create a vtn with specified parameters.
56     ${resp}=    RequestsLibrary.Delete    session    ${REST_CONTEXT_VTNS}/${vtn_name}
57     Should Be Equal As Strings    ${resp.status_code}    200
58
59 Add a vBridge
60     [Arguments]    ${vtn_name}    ${vBridge_name}    ${vBridge_data}
61     [Documentation]    Create a vBridge in a VTN
62     ${resp}=    RequestsLibrary.Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}    data=${vBridge_data}
63     Should Be Equal As Strings    ${resp.status_code}    201
64
65 Add a interface
66     [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${interface_data}
67     [Documentation]    Create a interface into a vBridge of a VTN
68     ${resp}=    RequestsLibrary.Post    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}    data=${interface_data}
69     Should Be Equal As Strings    ${resp.status_code}    201
70
71 Add a portmap
72     [Arguments]    ${vtn_name}    ${vBridge_name}    ${interface_name}    ${portmap_data}
73     [Documentation]    Create a portmap for a interface of a vbridge
74     ${json_data}=   json.dumps    ${portmap_data}
75     ${resp}=    RequestsLibrary.Put    session    ${REST_CONTEXT_VTNS}/${vtn_name}/vbridges/${vBridge_name}/interfaces/${interface_name}/portmap    data=${json_data}    headers=${HEADERS}
76     Should Be Equal As Strings    ${resp.status_code}    200
77
78 mininet ping
79     [Arguments]     ${host1}     ${host2}
80     Write    ${host1} ping -c 10 ${host2}
81     ${result}    Read Until    mininet>
82     Should Contain    ${result}    64 bytes