2 Documentation Create availability zone in A&AI.
4 Resource aai_interface.robot
5 Library OperatingSystem
7 Library ONAPLibrary.Templating WITH NAME Templating
8 Library ONAPLibrary.AAI WITH NAME AAI
12 ${AZ_ROOT_PATH} /cloud-infrastructure/cloud-regions/cloud-region
13 ${AZ_ZONE_PATH} /availability-zones/availability-zone
15 ${AAI_ADD_AVAILABILITY_ZONE_BODY} aai/add_availability_zone_body.jinja
18 Create Availability Zone If Not Exists
19 [Documentation] Creates availability zone in A&AI if it doesn't exist
20 [Arguments] ${cloud-owner} ${cloud-region-id} ${availability_zone_name}=${GLOBAL_AAI_AVAILABILITY_ZONE_NAME}
21 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${AZ_ROOT_PATH}/${cloud-owner}/${cloud-region-id}${AZ_ZONE_PATH}/${availability_zone_name} auth=${GLOBAL_AAI_AUTHENTICATION}
22 Return From Keyword If '${get_resp.status_code}' == '200'
23 Create Availability Zone ${availability_zone_name} ${cloud-owner} ${cloud-region-id}
25 Create Availability Zone
26 [Documentation] Creates availability zone in A&AI
27 [Arguments] ${availability_zone_name} ${cloud-owner} ${cloud-region-id}
28 ${arguments}= Create Dictionary availability_zone_name=${availability_zone_name}
29 Templating.Create Environment aai ${GLOBAL_TEMPLATE_FOLDER}
30 ${data}= Templating.Apply Template aai ${AAI_ADD_AVAILABILITY_ZONE_BODY} ${arguments}
31 ${put_resp}= AAI.Run Put Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${AZ_ROOT_PATH}/${cloud-owner}/${cloud-region-id}${AZ_ZONE_PATH}/${availability_zone_name} ${data} auth=${GLOBAL_AAI_AUTHENTICATION}
32 ${status_string}= Convert To String ${put_resp.status_code}
33 Should Match Regexp ${status_string} ^(201|200)$
35 Delete Availability Zone If Exists
36 [Documentation] Removes availability zone
37 [Arguments] ${cloud-owner} ${cloud-region-id} ${availability_zone_name}=${GLOBAL_AAI_AVAILABILITY_ZONE_NAME}
38 ${get_resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${AZ_ROOT_PATH}/${cloud-owner}/${cloud-region-id}${AZ_ZONE_PATH}/${availability_zone_name} auth=${GLOBAL_AAI_AUTHENTICATION}
39 Run Keyword If '${get_resp.status_code}' == '200' Delete Availability Zone ${availability_zone_name} ${cloud-owner} ${cloud-region-id} ${get_resp.json()}
41 Delete Availability Zone
42 [Arguments] ${availability_zone_name} ${cloud-owner} ${cloud-region-id} ${json}
43 ${resource_version}= Catenate ${json['resource-version']}
44 ${put_resp}= AAI.Run Delete Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${AZ_ROOT_PATH}/${cloud-owner}/${cloud-region-id}${AZ_ZONE_PATH}/${availability_zone_name} ${resource_version} auth=${GLOBAL_AAI_AUTHENTICATION}
45 Should Be Equal As Strings ${put_resp.status_code} 204
48 [Documentation] Return availability zone
49 [Arguments] ${availability_zone_name} ${cloud-owner} ${cloud-region-id}
50 ${resp}= AAI.Run Get Request ${AAI_FRONTEND_ENDPOINT} ${GLOBAL_AAI_INDEX_PATH}${AZ_ROOT_PATH}/${cloud-owner}/${cloud-region-id}${AZ_ZONE_PATH}/${availability_zone_name} auth=${GLOBAL_AAI_AUTHENTICATION}
51 Should Be Equal As Strings ${resp.status_code} 200
52 [Return] ${resp.json()}