Add API calls for creating network zone -defaults 63/17963/2
authorJerry Flood <jf9860@att.com>
Tue, 10 Oct 2017 12:09:07 +0000 (08:09 -0400)
committerJerry Flood <jf9860@att.com>
Tue, 10 Oct 2017 14:12:59 +0000 (10:12 -0400)
Issue: INT-256
Change-Id: Iaa83434ba4ba32eab81712e51e5e64a4c52ca0a3
Signed-off-by: Jerry Flood <jf9860@att.com>
robot/assets/templates/aai/add_zone_body.template [new file with mode: 0644]
robot/resources/aai/create_zone.robot [new file with mode: 0644]
robot/resources/global_properties.robot
robot/resources/test_templates/vnf_orchestration_test_template.robot

diff --git a/robot/assets/templates/aai/add_zone_body.template b/robot/assets/templates/aai/add_zone_body.template
new file mode 100644 (file)
index 0000000..01f99c0
--- /dev/null
@@ -0,0 +1,7 @@
+{
+"zone-id":"${zone_id}",
+"zone-name":"${zone_name}",
+"design-type":"${design_type}",
+"zone-context":"${zone_context}",
+"status":"deployed"
+}
\ No newline at end of file
diff --git a/robot/resources/aai/create_zone.robot b/robot/resources/aai/create_zone.robot
new file mode 100644 (file)
index 0000000..995db3e
--- /dev/null
@@ -0,0 +1,59 @@
+*** Settings ***
+Documentation    Create A&AI Customer API.
+...
+...                  Create A&AI Customer API
+
+Resource    ../json_templater.robot
+Resource    aai_interface.robot
+Library    OperatingSystem
+Library    Collections
+
+
+
+*** Variables ***
+${ZONE_INDEX_PATH}     /aai/v11
+${ROOT_ZONE_PATH}  /network/zones/zone
+
+${SYSTEM USER}    robot-ete
+${AAI_ADD_ZONE_BODY}=    robot/assets/templates/aai/add_zone_body.template
+
+*** Keywords ***
+Inventory Zone If Not Exists
+    [Documentation]    Creates a service in A&AI if it doesn't exist
+    [Arguments]    ${zone_id}=${GLOBAL_AAI_ZONE_ID}  ${zone_name}=${GLOBAL_AAI_ZONE_NAME}  ${design_type}=${GLOBAL_AAI_DESIGN_TYPE}    ${zone_context}=${GLOBAL_AAI_ZONE_CONTEXT}
+    ${get_resp}=    Run A&AI Get Request     ${ZONE_INDEX_PATH}${ROOT_ZONE_PATH}/${zone_id}
+    Return From Keyword If    '${get_resp.status_code}' == '200'
+    Inventory Zone  ${zone_id}  ${zone_name}  ${design_type}    ${zone_context}
+
+Inventory Zone
+    [Documentation]    Inventorys a Tenant in A&AI
+    [Arguments]    ${zone_id}  ${zone_name}  ${design_type}    ${zone_context}
+    ${arguments}=    Create Dictionary     zone_id=${zone_id}  zone_name=${zone_name}  design_type=${design_type}    zone_context=${zone_context}
+    ${data}=   Fill JSON Template File    ${AAI_ADD_ZONE_BODY}    ${arguments}
+       ${put_resp}=    Run A&AI Put Request     ${ZONE_INDEX_PATH}${ROOT_ZONE_PATH}/${zone_id}     ${data}
+    ${status_string}=    Convert To String    ${put_resp.status_code}
+    Should Match Regexp    ${status_string}    ^(201|200)$
+
+Delete Zone
+    [Documentation]    Removes both Tenant
+    [Arguments]    ${zone_id}=${GLOBAL_AAI_ZONE_ID}
+    ${get_resp}=    Run A&AI Get Request     ${ZONE_INDEX_PATH}${ROOT_ZONE_PATH}/${zone_id}
+    Run Keyword If    '${get_resp.status_code}' == '200'    Delete Zone Exists    ${zone_id}   ${get_resp.json()}
+
+Delete Zone Exists
+    [Arguments]    ${zone_id}    ${json}
+    ${resource_version}=   Catenate   ${json['resource-version']}
+    ${put_resp}=    Run A&AI Delete Request    ${ZONE_INDEX_PATH}${ROOT_ZONE_PATH}/${zone_id}    ${resource_version}
+    Should Be Equal As Strings         ${put_resp.status_code}         204
+
+Get Zone
+    [Documentation]   Return zone
+    [Arguments]    ${zone_id} 
+       ${resp}=    Run A&AI Get Request     ${ZONE_INDEX_PATH}${ROOT_ZONE_PATH}/${zone_id}
+    Should Be Equal As Strings         ${resp.status_code}     200
+       [Return]  ${resp.json()}
+
+
+
+
+
index 871f992..ebce72b 100644 (file)
@@ -24,4 +24,8 @@ ${GLOBAL_BUILD_NUMBER}    0
 ${GLOBAL_VID_UI_TIMEOUT_SHORT}    20s
 ${GLOBAL_VID_UI_TIMEOUT_MEDIUM}    60s
 ${GLOBAL_VID_UI_TIMEOUT_LONG}    120s
-${GLOBAL_VM_PRIVATE_KEY}   ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
\ No newline at end of file
+${GLOBAL_VM_PRIVATE_KEY}   ${EXECDIR}/robot/assets/keys/robot_ssh_private_key.pvt
+${GLOBAL_AAI_ZONE_ID}    zone1
+${GLOBAL_AAI_ZONE_NAME}    zone1-name
+${GLOBAL_AAI_DESIGN_TYPE}    zone1-design-type
+${GLOBAL_AAI_ZONE_CONTEXT}    zone1-context
index ed847c2..d6bb1e9 100644 (file)
@@ -9,6 +9,7 @@ Resource        ../vid/teardown_vid.robot
 Resource        ../sdngc_interface.robot
 Resource        model_test_template.robot
 
+Resource        ../aai/create_zone.robot
 Resource        ../aai/create_customer.robot
 Resource        ../aai/create_tenant.robot
 Resource        ../aai/create_service.robot
@@ -89,6 +90,7 @@ Setup Orchestrate VNF
     Initialize Regions From Openstack
     :FOR    ${region}    IN    @{REGIONS}
     \    Inventory Tenant If Not Exists    ${cloud_owner}  ${region}  ${cloud_type}    ${owner_defined_type}    ${cloud_region_version}    ${cloud_zone}    ${TENANT_ID}    ${TENANT_NAME}
+    Inventory Zone If Not Exists
     Log   Orchestrate VNF setup complete
 
 Initialize Tenant From Openstack