2 Documentation Create VNFC in AAI
4 Resource aai_interface.robot
5 Library ONAPLibrary.Templating WITH NAME Templating
6 Library ONAPLibrary.AAI WITH NAME AAI
9 ${VNFC_ROOT_PATH} /network/vnfcs/vnfc
11 ${AAI_ADD_VNFC_BODY}= aai/add_vnfc_body.jinja
14 Create VNFC If Not Exists
15 [Documentation] Creates VNFC in A&AI if it doesn't exist
16 [Arguments] ${vnfc_name} ${vnfc_nc} ${vnfc_func}
17 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${VNFC_ROOT_PATH}/${vnfc_name} auth=${GLOBAL_AAI_AUTHENTICATION}
18 Return From Keyword If '${get_resp.status_code}' == '200'
19 Create VNFC ${vnfc_name} ${vnfc_nc} ${vnfc_func}
22 [Documentation] Creates VNFC in A&AI
23 [Arguments] ${vnfc_name} ${vnfc_nc} ${vnfc_func}
24 ${arguments}= Create Dictionary vnfc_name=${vnfc_name} vnfc_nc=${vnfc_nc} vnfc_func=${vnfc_func}
25 Templating.Create Environment aai ${GLOBAL_TEMPLATE_FOLDER}
26 ${data}= Templating.Apply Template aai ${AAI_ADD_VNFC_BODY} ${arguments}
27 ${put_resp}= AAI.Run Put Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${VNFC_ROOT_PATH}/${vnfc_name} ${data} auth=${GLOBAL_AAI_AUTHENTICATION}
28 ${status_string}= Convert To String ${put_resp.status_code}
29 Should Match Regexp ${status_string} ^(201|200)$
32 [Documentation] Removes VNFC from AAI if it exists
33 [Arguments] ${vnfc_name}
34 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${VNFC_ROOT_PATH}/${vnfc_name} auth=${GLOBAL_AAI_AUTHENTICATION}
35 Run Keyword If '${get_resp.status_code}' == '200' Delete VNFC ${vnfc_name} ${get_resp.json()}
38 [Documentation] Removes VNFC from AAI
39 [Arguments] ${vnfc_name} ${json}
40 ${resource_version}= Catenate ${json['resource-version']}
41 ${put_resp}= AAI.Run Delete Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${VNFC_ROOT_PATH}/${vnfc_name} ${resource_version} auth=${GLOBAL_AAI_AUTHENTICATION}
42 Should Be Equal As Strings ${put_resp.status_code} 204
45 [Documentation] Return VNFC
46 [Arguments] ${vnfc_name}
47 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${VNFC_ROOT_PATH}/${vnfc_name} auth=${GLOBAL_AAI_AUTHENTICATION}
48 Should Be Equal As Strings ${resp.status_code} 200
49 [Return] ${resp.json()}