3 Library RequestsLibrary
4 Library HttpLibrary.HTTP
5 Library OperatingSystem
9 Resource ../../../json_templater.robot
10 Resource ../../../SoKeywords.robot
11 Resource ../../../common/SoVariables.robot
12 Resource ../../../so_interface.robot
13 Resource ../../../aai/service_instance.robot
14 Resource ../../../common/Variables.robot
15 Resource ../../../properties/tenant.robot
16 Resource ../../../properties/cloudRegion.robot
19 ${data_file} ../../../../data/bpmn-infra/aLaCarte/ServiceInstance.csv
20 ${create_customer_template_file} tests/so/orchestration/assets/templates/aai/add_customer_required_fields.template
21 ${create_service_subscription_template_file} tests/so/orchestration/assets/templates/aai/service_subscription_required_fields.template
22 ${create_service_model_template_file} tests/so/orchestration/assets/templates/aai/service_model.template
23 ${serviceInstanceDictionary}
26 ${SUBSCRIBER_TYPE} CUST
27 ${EXPECTED_ORCHESTRATION_STATUS} Active
28 ${tenant_json} tests/so/orchestration/assets/templates/setup_tenant.json
29 ${cloud_region_json} tests/so/orchestration/assets/templates/setup_cloud_region.json
34 Setup GR Create Service Instance
35 [Arguments] ${serv_inst_tc_code}
36 ${serviceInstanceDictionary} Read CSV Data And Create Dictionary ${CURDIR}/${data_file}
37 Set Suite Variable ${serviceInstanceDictionary}
38 Set Suite Variable ${serv_inst_tc_code}
43 ${create_service_instance_data} Get From Dictionary ${serviceInstanceDictionary} ${serv_inst_tc_code}
45 ${SUBSCRIBER_ID} Get From Dictionary ${create_service_instance_data} subscriberId
46 Setup Customer ${SUBSCRIBER_ID}
47 ${SUBSCRIPTION_SERVICE_TYPE} Get From Dictionary ${create_service_instance_data} serviceType
48 Setup Service Subscription ${SUBSCRIBER_ID} ${SUBSCRIPTION_SERVICE_TYPE}
50 Setup Service Model in A&AI ${serviceInstanceDictionary} ${serv_inst_tc_code}
52 Teardown GR Create Service Instance
53 [Arguments] ${service_instance_id}
54 Delete Service Instance by Id ${service_instance_id}
58 [Documentation] Setup the cloud region in AAI
60 ${cloud_region_data} Create Dictionary cloudOwner=${cloudOwner} cloudRegionId=${cloudRegionId} cloudType=${cloudType}
61 ... ownerDefinedType=${ownerDefinedType} cloudRegionVersion=${cloudRegionVersion} cloudZone=${cloudZone}
62 ... complexName=${complexName} sriovAutomation=${sriovAutomation}
63 ${create_cloud_region_json} Fill JSON Template File ${cloud_region_json} ${cloud_region_data}
64 Run A&AI Put Request ${VERSIONED_INDEX_PATH}/cloud-infrastructure/cloud-regions/cloud-region/${cloudOwner}/${cloudRegionId} ${create_cloud_region_json}
66 ${json}= OperatingSystem.Get File tests/so/orchestration/assets/templates/gr-api/PhysicalServerCreate.json
67 ${returned_json}= To Json ${json}
68 Run A&AI Put Request aai/v14/cloud-infrastructure/pservers/pserver/rdm52r19c001 ${returned_json}
71 [Documentation] Setup the tenant in AAI
73 ${tenant_data} Create Dictionary tenantId=${aai_tenant_Id} tenantName=${aai_tenant_name}
74 ${create_tenant_json} Fill JSON Template File ${tenant_json} ${tenant_data}
75 Run A&AI Put Request ${VERSIONED_INDEX_PATH}/cloud-infrastructure/cloud-regions/cloud-region/${cloudOwner}/${cloudRegionId}/tenants/tenant/${aai_tenant_Id} ${create_tenant_json}
78 [Documentation] Creates customer for use in tests
79 [Arguments] ${SUBSCRIBER_ID}
81 ${create_customer_data} Create Dictionary global_customer_id=${SUBSCRIBER_ID} subscriber_name=${SUBSCRIBER_ID} subscriber_type=${SUBSCRIBER_TYPE}
82 Set Suite Variable ${create_customer_data}
83 ${create_customer_json} Fill JSON Template File ${create_customer_template_file} ${create_customer_data}
85 Run A&AI Put Request ${VERSIONED_INDEX_PATH}/business/customers/customer/${SUBSCRIBER_ID} ${create_customer_json}
87 Setup Service Subscription
88 [Documentation] Creates service subscription for use in tests
89 [Arguments] ${SUBSCRIBER_ID} ${SUBSCRIPTION_SERVICE_TYPE}
90 ${create_service_subscription_data} Create Dictionary service_type=${SUBSCRIPTION_SERVICE_TYPE}
91 Set Suite Variable ${create_service_subscription_data}
92 ${create_service_subscription_json} Fill JSON Template File ${create_service_subscription_template_file} ${create_service_subscription_data}
94 Run A&AI Put Request ${VERSIONED_INDEX_PATH}/business/customers/customer/${SUBSCRIBER_ID}/service-subscriptions/service-subscription/${SUBSCRIPTION_SERVICE_TYPE} ${create_service_subscription_json}
96 Setup Service Model in A&AI
97 [Arguments] ${serviceeDictionary} ${serv_inst_tc_code}
99 ${create_service_instance_data} Get From Dictionary ${serviceInstanceDictionary} ${serv_inst_tc_code}
100 ${modelInvariantId} Get From Dictionary ${create_service_instance_data} serviceInstModelInvariantId
101 ${modelVersionId} Get From Dictionary ${create_service_instance_data} serviceInstModelNameVersionId
102 ${modelName} Get From Dictionary ${create_service_instance_data} serviceInstModelName
103 ${modelType} Get From Dictionary ${create_service_instance_data} serviceInstModelType
104 ${modelVersion} Get From Dictionary ${create_service_instance_data} serviceInstModelVersion
105 ${modelDescription} Get From Dictionary ${create_service_instance_data} serviceInstModelDescription
106 Setup Model in AAI ${modelInvariantId} ${modelType} ${modelVersionId} ${modelName} ${modelVersion} ${modelDescription}
109 [Documentation] Setup Model in AAI for use in tests
110 [Arguments] ${modelInvariantId} ${modelType} ${modelVersionId} ${modelName} ${modelVersion} ${modelDescription}
111 ${create_service_model_data} Create Dictionary modelInvariantId=${modelInvariantId} modelType=${modelType} modelVersionId=${modelVersionId}
112 ... modelName=${modelName} modelVersion=${modelVersion} modelDescription=${modelDescription}
113 ${create_service_model_json} Fill JSON Template File ${create_service_model_template_file} ${create_service_model_data}
115 Run A&AI Put Request ${VERSIONED_INDEX_PATH}/service-design-and-creation/models/model/${modelInvariantId} ${create_service_model_json}
118 Create Service Instance
119 [Documentation] Test Template for CreateServiceInstanceInfra
120 [Arguments] ${serv_inst_tc_code} ${payload_template}
122 Log ${serv_inst_tc_code}
123 Log ${payload_template}
124 ${create_service_instance_data} Get From Dictionary ${serviceInstanceDictionary} ${serv_inst_tc_code}
126 Log ${create_service_instance_data}
127 Log ${CURDIR}/${payload_template}
128 Log ${create_service_instance_data}
130 ${service_body}= Fill JSON Template File ${CURDIR}/${payload_template} ${create_service_instance_data}
133 Log after service body
134 ${serv_inst_id} ${request_id} ${request_completion_status} ${status_code} Invoke Create Service Instance Flow ${service_body}
135 [Return] ${serv_inst_id} ${request_id} ${request_completion_status} ${status_code} ${service_body}
139 Invoke Create Service Instance Flow
140 [Documentation] Create Service Instance
141 [Arguments] ${service_body}
143 ${create_service_response} Run SO Post request ${SO_REST_URI_CREATE_SERVICE} ${service_body}
144 log retunred ${create_service_response}
145 Return From Keyword If ${create_service_response.status_code} != ${HTTP_ACCEPTED} ${EMPTY} ${EMPTY} ${EMPTY} ${create_service_response.status_code}
146 ${request_id_string} Get Json Value ${create_service_response.content} /requestReferences/requestId
147 ${request_id} Get Substring ${request_id_string} 1 -1
148 ${instance_id_string} Get Json Value ${create_service_response.content} /requestReferences/instanceId
149 ${instance_id} Get Substring ${instance_id_string} 1 -1
151 ${request_completion_status} ${orchestration_failure_message} Run Keyword If ${create_service_response.status_code} == ${HTTP_ACCEPTED}
152 ... Poll Orchestration Request ${request_id}
154 [Return] ${instance_id} ${request_id} ${request_completion_status} ${create_service_response.status_code}
156 Invoke Delete Service Instance Flow
157 [Documentation] Delete a service instance.
158 [Arguments] ${service_body} ${service_instance}
160 ${delete_service_response} Run SO Delete request ${SO_REST_URI_DELETE_SERVICE}/${service_instance} data=${service_body}
162 Return From Keyword If ${delete_service_response.status_code} != ${HTTP_ACCEPTED} ${EMPTY} ${EMPTY} ${EMPTY} ${delete_service_response.status_code}
164 ${request_id_string} Get Json Value ${delete_service_response.content} /requestReferences/requestId
165 ${request_id} Get Substring ${request_id_string} 1 -1
166 ${instance_id_string} Get Json Value ${delete_service_response.content} /requestReferences/instanceId
167 ${instance_id} Get Substring ${instance_id_string} 1 -1
169 ${request_completion_status} ${orchestration_failure_message} Run Keyword If ${delete_service_response.status_code} == ${HTTP_ACCEPTED}
170 ... Poll Orchestration Request ${request_id}
172 [Return] ${instance_id} ${request_id} ${request_completion_status} ${delete_service_response.status_code}