2 Documentation Operations on connectivities in AAI for CCVPN use case, using earliest API version where it is implemented and latest API version where it is not implemented
4 Resource aai_interface.robot
5 Resource api_version_properties.robot
6 Resource add-relationship-list.robot
7 Library OperatingSystem
9 Library ONAPLibrary.Templating WITH NAME Templating
10 Library ONAPLibrary.AAI WITH NAME AAI
13 ${AAI_CONN_ROOT_PATH} /network/connectivities/connectivity
14 ${AAI_CONN_EXAMPLES_PATH} /examples/connectivities
15 ${AAI_CONN_NODES_PATH} /nodes/connectivities
16 ${AAI_ADD_CONNECTIVITY_BODY}= aai/add-connectivity.jinja
17 ${AAI_CONN_API_NA_INDEX_PATH}= ${AAI_BEIJING_INDEX_PATH}
18 ${AAI_CONN_API_IMPL_INDEX_PATH}= ${AAI_CASABLANCA_INDEX_PATH}
21 Create Connectivity If Not Exists
22 [Documentation] Creates Connectivity in AAI if it doesn't exist
23 [Arguments] ${connectivity_id}
24 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
25 Return From Keyword If '${get_resp.status_code}' == '200'
26 Create Connectivity ${connectivity_id}
29 [Documentation] Creates Connectivity in AAI
30 [Arguments] ${connectivity_id}
31 ${arguments}= Create Dictionary connectivity_id=${connectivity_id}
32 Templating.Create Environment aai ${GLOBAL_TEMPLATE_FOLDER}
33 ${data}= Templating.Apply Template aai ${AAI_ADD_CONNECTIVITY_BODY} ${arguments}
34 ${put_resp}= AAI.Run Put Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${data} auth=${GLOBAL_AAI_AUTHENTICATION}
35 ${status_string}= Convert To String ${put_resp.status_code}
36 Should Match Regexp ${status_string} ^(201|200)$
38 Delete Connectivity If Exists
39 [Documentation] Removes Connectivity from AAI if it exists
40 [Arguments] ${connectivity_id}
41 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
42 Run Keyword If '${get_resp.status_code}' == '200' Delete Connectivity ${connectivity_id} ${get_resp.json()}
45 [Documentation] Removes Connectivity from AAI
46 [Arguments] ${connectivity_id} ${json}
47 ${resource_version}= Catenate ${json['resource-version']}
48 ${put_resp}= AAI.Run Delete Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${resource_version} auth=${GLOBAL_AAI_AUTHENTICATION}
49 Should Be Equal As Strings ${put_resp.status_code} 204
52 [Documentation] Return Connectivity
53 [Arguments] ${connectivity_id}
54 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
55 Should Be Equal As Strings ${resp.status_code} 200
56 [Return] ${resp.json()}
58 Get Valid Connectivity URL
59 [Documentation] Return Valid Connectivity URL
60 [Arguments] ${connectivity_id}
61 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
62 Should Be Equal As Strings ${resp.status_code} 200
63 [Return] ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
65 Get Nodes Query Connectivity
66 [Documentation] Return Nodes query Connectivity
67 [Arguments] ${connectivity_id}
68 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_NODES_PATH}?connectivity-id=${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
69 Should Be Equal As Strings ${resp.status_code} 200
70 [Return] ${resp.json()}
72 Get Example Connectivity
73 [Documentation] Return Example Connectivity
74 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_EXAMPLES_PATH} auth=${GLOBAL_AAI_AUTHENTICATION}
75 Should Be Equal As Strings ${resp.status_code} 200
76 [Return] ${resp.json()}
78 Confirm No Connectivity
79 [Documentation] Confirm No Connectivity
80 [Arguments] ${connectivity_id}
81 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
82 Should Be Equal As Strings ${resp.status_code} 404
84 Confirm API Not Implemented Connectivity
85 [Documentation] Confirm latest API version where Connectivity is not implemented
86 [Arguments] ${connectivity_id}
87 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${AAI_CONN_API_NA_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} auth=${GLOBAL_AAI_AUTHENTICATION}
88 Should Be Equal As Strings ${resp.status_code} 400
90 Add Connectivity Relationship
91 [Documentation] Adds Relationship to existing Connectivity in AAI
92 [Arguments] ${connectivity_id} ${related_class_name} ${related_object_url}
93 ${put_resp}= Add Relationship ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${related_class_name} ${related_object_url}
95 Get Connectivity RelationshipList
96 [Documentation] Return relationship-list from Connectivity
97 [Arguments] ${connectivity_id}
98 ${resp}= Get RelationshipList ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
101 Get Connectivity With RelationshipList
102 [Documentation] Return Connectivity with relationship-list
103 [Arguments] ${connectivity_id}
104 ${resp}= Get Object With Depth ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}