Release image version 1.12.2
[testsuite.git] / robot / resources / aai / ccvpn-vpn-bindings.robot
1 *** Settings ***
2 Documentation     Operations on vpn-bindings in AAI for CCVPN use case,
3 ...     using earliest API version where changes are implemented and
4 ...     latest API version where changes are not implemented
5
6 Resource    aai_interface.robot
7 Resource    api_version_properties.robot
8 Resource    add-relationship-list.robot
9 Library    OperatingSystem
10 Library    Collections
11 Library    ONAPLibrary.Templating    WITH NAME     Templating
12 Library    ONAPLibrary.AAI    WITH NAME     AAI
13
14 *** Variables ***
15 ${AAI_VPNB_ROOT_PATH}      /network/vpn-bindings/vpn-binding
16 ${AAI_VPNB_EXAMPLES_PATH}      /examples/vpn-bindings
17 ${AAI_VPNB_NODES_PATH}      /nodes/vpn-bindings
18 ${AAI_ADD_VPNBINDING_BODY}=    aai/add-vpn-binding.jinja
19 ${AAI_VPNB_API_NA_INDEX_PATH}=  ${AAI_BEIJING_INDEX_PATH}
20 ${AAI_VPNB_API_IMPL_INDEX_PATH}=  ${AAI_CASABLANCA_INDEX_PATH}
21
22 *** Keywords ***
23 Create VPN Binding If Not Exists
24     [Documentation]    Creates VPN Binding in AAI if it doesn't exist
25     [Arguments]    ${vpn_id}
26     ${get_resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
27     Return From Keyword If    '${get_resp.status_code}' == '200'
28     Create VPN Binding  ${vpn_id}
29
30 Create VPN Binding
31     [Documentation]    Creates VPN Binding in AAI
32     [Arguments]    ${vpn_id}
33     ${arguments}=    Create Dictionary     vpn_id=${vpn_id}
34     Templating.Create Environment    aai    ${GLOBAL_TEMPLATE_FOLDER}
35     ${data}=   Templating.Apply Template    aai   ${AAI_ADD_VPNBINDING_BODY}    ${arguments}
36     ${put_resp}=    AAI.Run Put Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}     ${data}    auth=${GLOBAL_AAI_AUTHENTICATION}
37     ${status_string}=    Convert To String    ${put_resp.status_code}
38     Should Match Regexp    ${status_string}     ^(201|200)$
39
40 Delete VPN Binding If Exists
41     [Documentation]    Removes VPN Binding from AAI if it exists
42     [Arguments]    ${vpn_id}
43     ${get_resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
44     Run Keyword If    '${get_resp.status_code}' == '200'    Delete VPN Binding     ${vpn_id}   ${get_resp.json()}
45
46 Delete VPN Binding
47     [Documentation]    Removes VPN Binding from AAI
48     [Arguments]    ${vpn_id}  ${json}
49     ${resource_version}=   Catenate   ${json['resource-version']}
50     ${put_resp}=    AAI.Run Delete Request    ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    ${resource_version}    auth=${GLOBAL_AAI_AUTHENTICATION}
51     Should Be Equal As Strings  ${put_resp.status_code}         204
52
53 Get VPN Binding
54     [Documentation]   Return VPN Binding
55     [Arguments]    ${vpn_id}
56     ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
57     Should Be Equal As Strings  ${resp.status_code}     200
58     [Return]  ${resp.json()}
59
60 Get Valid VPN Binding URL
61     [Documentation]   Return Valid VPN Binding URL
62     [Arguments]    ${vpn_id}
63     ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
64     Should Be Equal As Strings  ${resp.status_code}     200
65     [Return]  ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}
66
67 Get Nodes Query VPN Binding
68     [Documentation]   Return Nodes query VPN Binding
69     [Arguments]    ${vpn_id}
70     ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_NODES_PATH}?vpn-id=${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
71     Should Be Equal As Strings  ${resp.status_code}     200
72     [Return]  ${resp.json()}
73
74 Get Example VPN Binding
75     [Documentation]   Return Example VPN Binding
76     ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_EXAMPLES_PATH}    auth=${GLOBAL_AAI_AUTHENTICATION}
77     Should Be Equal As Strings  ${resp.status_code}     200
78     [Return]  ${resp.json()}
79
80 Confirm No VPN Binding
81     [Documentation]   Confirm No VPN Binding
82     [Arguments]    ${vpn_id}
83     ${resp}=    AAI.Run Get Request     ${AAI_FRONTEND_ENDPOINT}    ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}    auth=${GLOBAL_AAI_AUTHENTICATION}
84     Should Be Equal As Strings  ${resp.status_code}     404
85
86 Add VPN Binding Relationship
87     [Documentation]    Adds Relationship to existing VPN Binding in AAI
88     [Arguments]    ${vpn_id}  ${related_class_name}  ${related_object_url}
89     ${put_resp}=    Add Relationship     ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}  ${related_class_name}  ${related_object_url}
90
91 Get VPN Binding RelationshipList
92     [Documentation]   Return relationship-list from VPN Binding
93     [Arguments]    ${vpn_id}
94     ${resp}=    Get RelationshipList     ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}
95     [Return]  ${resp}
96
97 Get VPN Binding With RelationshipList
98     [Documentation]   Return VPN Binding with relationship-list
99     [Arguments]    ${vpn_id}
100     ${resp}=    Get Object With Depth     ${AAI_VPNB_API_IMPL_INDEX_PATH}${AAI_VPNB_ROOT_PATH}/${vpn_id}
101     [Return]  ${resp}