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
12 ${AAI_CONN_ROOT_PATH} /network/connectivities/connectivity
13 ${AAI_CONN_EXAMPLES_PATH} /examples/connectivities
14 ${AAI_CONN_NODES_PATH} /nodes/connectivities
15 ${AAI_ADD_CONNECTIVITY_BODY}= aai/add-connectivity.jinja
16 ${AAI_CONN_API_NA_INDEX_PATH}= ${AAI_BEIJING_INDEX_PATH}
17 ${AAI_CONN_API_IMPL_INDEX_PATH}= ${AAI_CASABLANCA_INDEX_PATH}
20 Create Connectivity If Not Exists
21 [Documentation] Creates Connectivity in AAI if it doesn't exist
22 [Arguments] ${connectivity_id}
23 ${get_resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
24 Return From Keyword If '${get_resp.status_code}' == '200'
25 Create Connectivity ${connectivity_id}
28 [Documentation] Creates Connectivity in AAI
29 [Arguments] ${connectivity_id}
30 ${arguments}= Create Dictionary connectivity_id=${connectivity_id}
31 Create Environment aai ${GLOBAL_TEMPLATE_FOLDER}
32 ${data}= Apply Template aai ${AAI_ADD_CONNECTIVITY_BODY} ${arguments}
33 ${put_resp}= Run A&AI Put Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${data}
34 ${status_string}= Convert To String ${put_resp.status_code}
35 Should Match Regexp ${status_string} ^(201|200)$
37 Delete Connectivity If Exists
38 [Documentation] Removes Connectivity from AAI if it exists
39 [Arguments] ${connectivity_id}
40 ${get_resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
41 Run Keyword If '${get_resp.status_code}' == '200' Delete Connectivity ${connectivity_id} ${get_resp.json()}
44 [Documentation] Removes Connectivity from AAI
45 [Arguments] ${connectivity_id} ${json}
46 ${resource_version}= Catenate ${json['resource-version']}
47 ${put_resp}= Run A&AI Delete Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${resource_version}
48 Should Be Equal As Strings ${put_resp.status_code} 204
51 [Documentation] Return Connectivity
52 [Arguments] ${connectivity_id}
53 ${resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
54 Should Be Equal As Strings ${resp.status_code} 200
55 [Return] ${resp.json()}
57 Get Valid Connectivity URL
58 [Documentation] Return Valid Connectivity URL
59 [Arguments] ${connectivity_id}
60 ${resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
61 Should Be Equal As Strings ${resp.status_code} 200
62 [Return] ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
64 Get Nodes Query Connectivity
65 [Documentation] Return Nodes query Connectivity
66 [Arguments] ${connectivity_id}
67 ${resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_NODES_PATH}?connectivity-id=${connectivity_id}
68 Should Be Equal As Strings ${resp.status_code} 200
69 [Return] ${resp.json()}
71 Get Example Connectivity
72 [Documentation] Return Example Connectivity
73 ${resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_EXAMPLES_PATH}
74 Should Be Equal As Strings ${resp.status_code} 200
75 [Return] ${resp.json()}
77 Confirm No Connectivity
78 [Documentation] Confirm No Connectivity
79 [Arguments] ${connectivity_id}
80 ${resp}= Run A&AI Get Request ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
81 Should Be Equal As Strings ${resp.status_code} 404
83 Confirm API Not Implemented Connectivity
84 [Documentation] Confirm latest API version where Connectivity is not implemented
85 [Arguments] ${connectivity_id}
86 ${resp}= Run A&AI Get Request ${AAI_CONN_API_NA_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
87 Should Be Equal As Strings ${resp.status_code} 400
89 Add Connectivity Relationship
90 [Documentation] Adds Relationship to existing Connectivity in AAI
91 [Arguments] ${connectivity_id} ${related_class_name} ${related_object_url}
92 ${put_resp}= Add Relationship ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${related_class_name} ${related_object_url}
94 Get Connectivity RelationshipList
95 [Documentation] Return relationship-list from Connectivity
96 [Arguments] ${connectivity_id}
97 ${resp}= Get RelationshipList ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
100 Get Connectivity With RelationshipList
101 [Documentation] Return Connectivity with relationship-list
102 [Arguments] ${connectivity_id}
103 ${resp}= Get Object With Depth ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}