blob: f2957763f231a2284c8470e364a87ed96e81d62f [file] [log] [blame]
DR695Hccff30b2017-02-17 18:44:24 -05001*** Settings ***
2Documentation The main interface for interacting with ASDC. It handles low level stuff like managing the http request library and DCAE required fields
Brian Freeman2e1d0ff2019-01-23 09:38:13 -05003Library RequestsLibrary
4Library UUID
5Library JSONUtils
DR695Hccff30b2017-02-17 18:44:24 -05006Library OperatingSystem
7Library Collections
Brian Freeman2e1d0ff2019-01-23 09:38:13 -05008Library ExtendedSelenium2Library
bdfreeman1421b2a49512018-11-25 07:32:19 -05009Library HttpLibrary.HTTP
Brian Freeman2e1d0ff2019-01-23 09:38:13 -050010Library String
11Library StringTemplater
Yang Xu7037e542018-12-28 01:19:26 -050012Library ArchiveLibrary
13Library HEATUtils
DR695Hccff30b2017-02-17 18:44:24 -050014Resource global_properties.robot
15Resource browser_setup.robot
16Resource json_templater.robot
Brian Freeman2e1d0ff2019-01-23 09:38:13 -050017
DR695Hccff30b2017-02-17 18:44:24 -050018*** Variables ***
19${ASDC_DESIGNER_USER_ID} cs0008
20${ASDC_TESTER_USER_ID} jm0007
21${ASDC_GOVERNOR_USER_ID} gv0001
22${ASDC_OPS_USER_ID} op0001
23${ASDC_HEALTH_CHECK_PATH} /sdc1/rest/healthCheck
24${ASDC_VENDOR_LICENSE_MODEL_PATH} /onboarding-api/v1.0/vendor-license-models
25${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} /onboarding-api/v1.0/vendor-software-products
26${ASDC_VENDOR_KEY_GROUP_PATH} /license-key-groups
27${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} /entitlement-pools
28${ASDC_VENDOR_FEATURE_GROUP_PATH} /feature-groups
29${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} /license-agreements
30${ASDC_VENDOR_ACTIONS_PATH} /actions
Jerry Floode2a48d72017-06-21 15:06:29 -040031${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /orchestration-template-candidate
Yang Xu2ec80382018-11-01 12:30:37 -040032${ASDC_FE_CATALOG_RESOURCES_PATH} /sdc1/feProxy/rest/v1/catalog/resources
Brian Freemaneef7c6f2018-11-16 18:42:21 -050033${ASDC_FE_CATALOG_SERVICES_PATH} /sdc1/feProxy/rest/v1/catalog/services
DR695Hccff30b2017-02-17 18:44:24 -050034${ASDC_CATALOG_RESOURCES_PATH} /sdc2/rest/v1/catalog/resources
35${ASDC_CATALOG_SERVICES_PATH} /sdc2/rest/v1/catalog/services
36${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} /sdc2/rest/v1/inactiveComponents/resource
Brian Freemaneef7c6f2018-11-16 18:42:21 -050037${ASDC_CATALOG_RESOURCES_QUERY_PATH} /sdc2/rest/v1/catalog/resources/resourceName
DR695Hccff30b2017-02-17 18:44:24 -050038${ASDC_CATALOG_INACTIVE_SERVICES_PATH} /sdc2/rest/v1/inactiveComponents/service
39${ASDC_CATALOG_LIFECYCLE_PATH} /lifecycleState
40${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} /resourceInstance
Brian Freeman2e1d0ff2019-01-23 09:38:13 -050041${ASDC_CATALOG_SERVICE_RESOURCE_ARTIFACT_PATH} /artifacts
DR695Hccff30b2017-02-17 18:44:24 -050042${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH} /distribution-state
43${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} /distribution
44${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} /approve
45${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} /distribution/PROD/activate
46${ASDC_LICENSE_MODEL_TEMPLATE} robot/assets/templates/asdc/license_model.template
47${ASDC_KEY_GROUP_TEMPLATE} robot/assets/templates/asdc/key_group.template
48${ASDC_ENTITLEMENT_POOL_TEMPLATE} robot/assets/templates/asdc/entitlement_pool.template
49${ASDC_FEATURE_GROUP_TEMPLATE} robot/assets/templates/asdc/feature_group.template
50${ASDC_LICENSE_AGREEMENT_TEMPLATE} robot/assets/templates/asdc/license_agreement.template
51${ASDC_ACTION_TEMPLATE} robot/assets/templates/asdc/action.template
52${ASDC_SOFTWARE_PRODUCT_TEMPLATE} robot/assets/templates/asdc/software_product.template
Brian Freeman2e1d0ff2019-01-23 09:38:13 -050053${ASDC_ARTIFACT_UPLOAD_TEMPLATE} robot/assets/templates/asdc/artifact_upload.template
DR695Hccff30b2017-02-17 18:44:24 -050054${ASDC_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resource.template
55${ASDC_USER_REMARKS_TEMPLATE} robot/assets/templates/asdc/user_remarks.template
56${ASDC_CATALOG_SERVICE_TEMPLATE} robot/assets/templates/asdc/catalog_service.template
57${ASDC_RESOURCE_INSTANCE_TEMPLATE} robot/assets/templates/asdc/resource_instance.template
Yang Xu2ec80382018-11-01 12:30:37 -040058${ASDC_RESOURCE_INSTANCE_VNF_PROPERTIES_TEMPLATE} robot/assets/templates/asdc/catalog_vnf_properties.template
59${ASDC_RESOURCE_INSTANCE_VNF_INPUTS_TEMPLATE} robot/assets/templates/asdc/catalog_vnf_inputs.template
Brian Freemaneef7c6f2018-11-16 18:42:21 -050060${SDC_CATALOG_NET_RESOURCE_INPUT_TEMPLATE} robot/assets/templates/asdc/catalog_net_input_properties.template
bdfreeman1421b2a49512018-11-25 07:32:19 -050061${ASDC_ALLOTTED_RESOURCE_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resource_alloted_resource.template
62${SDC_CATALOG_ALLOTTED_RESOURCE_PROPERTIES_TEMPLATE} robot/assets/templates/asdc/catalog_allotted_properties.template
63${SDC_CATALOG_ALLOTTED_RESOURCE_INPUTS_TEMPLATE} robot/assets/templates/asdc/catalog_allotted_inputs.template
Brian Freeman2e1d0ff2019-01-23 09:38:13 -050064${SDC_CATALOG_DEPLOYMENT_ARTIFACT_PATH} robot/assets/asdc/blueprints/
Brian Freemanf508ab22018-03-15 21:19:41 -050065${ASDC_FE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_FE_IP_ADDR}:${GLOBAL_ASDC_FE_PORT}
66${ASDC_BE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_IP_ADDR}:${GLOBAL_ASDC_BE_PORT}
Brian Freeman44b8bb32018-05-03 21:08:42 -050067${ASDC_BE_ONBOARD_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_BE_ONBOARD_IP_ADDR}:${GLOBAL_ASDC_BE_ONBOARD_PORT}
DR695Hbf5a3a32017-06-30 13:09:57 -040068
DR695Hccff30b2017-02-17 18:44:24 -050069*** Keywords ***
70Distribute Model From ASDC
71 [Documentation] goes end to end creating all the asdc objects based ona model and distributing it to the systems. it then returns the service name, vf name and vf module name
Brian Freemaneef7c6f2018-11-16 18:42:21 -050072 [Arguments] ${model_zip_path} ${catalog_service_name}= ${cds}= ${service}=
bdfreeman1421b2a49512018-11-25 07:32:19 -050073 # For Testing use random service names
Brian Freemaneef7c6f2018-11-16 18:42:21 -050074 #${random}= Get Current Date
75 #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}_${random}
jf986075010a42017-02-22 16:52:54 -050076 ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
DR695Hccff30b2017-02-17 18:44:24 -050077 ${catalog_resource_ids}= Create List
Jerry Flood3a169a32017-12-01 12:39:10 -050078 ${catalog_resources}= Create Dictionary
Brian Freemanee02b312019-02-04 20:36:08 -050079 ##### TODO: Support for Multiple resources of one type in a service ######
80 # The zip list is the resources - no mechanism to indicate more than 1 of the items in the zip list
81 # GLOBAL_SERVICE_VNF_MAPPING has the logical mapping but its not the same key as model_zip_path
82 # ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service}
83 # Save the resource_id in a dictionary keyed byt the resource NAme in the zipfile name (vFWDT_vFWSNK.zip or vFWDT_vPKG.zip)
84 # Create the resources but dont immediately add resource
85 # Add Resource to Service in a separate FOR loop
86 # TODO: CHECK vCPE models to make sure they aren't broken with the split
87 ${resource_types}= Create Dictionary
88
DR695Hccff30b2017-02-17 18:44:24 -050089 : FOR ${zip} IN @{model_zip_path}
Yang Xu2ec80382018-11-01 12:30:37 -040090 \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds}
Brian Freemanee02b312019-02-04 20:36:08 -050091 # zip can be vFW.zip or vFWDT_VFWSNK.zip
92 \ ${resource_type_match}= Get Regexp Matches ${zip} ${service}_(.*)\.zip 1
93 \ ${resource_type_string}= Set Variable If '${resource_type_match}' is '[]' ${service} ${resource_type_match[0]}
94 \ Set To Dictionary ${resource_types} ${resource_type_string} ${loop_catalog_resource_id}
Jerry Floode2a48d72017-06-21 15:06:29 -040095 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
Brian Freemanee02b312019-02-04 20:36:08 -050096
97
98 ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service}
99
100 # Spread the icons on the pallette starting on the left
101 ${xoffset}= Set Variable ${0}
102
103 : FOR ${vnf} IN @{vnflist}
104 #\ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
105 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${resource_types['${vnf}']}
106 \ Set To Dictionary ${catalog_resources} ${resource_types['${vnf}']}=${loop_catalog_resource_resp}
107 \ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${resource_types['${vnf}']} ${loop_catalog_resource_resp['name']} ${xoffset}
108 \ ${xoffset}= Set Variable ${xoffset+100}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500109 #
110 # do this here because the loop_catalog_resource_resp is different format after adding networks
111 ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
112 #
113 # do network
114 ${networklist}= Get From Dictionary ${GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING} ${service}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500115 ${generic_neutron_net_uuid}= Get Generic NeutronNet UUID
116 :FOR ${network} in @{networklist}
117 \ ${loop_catalog_resource_id}= Set Variable ${generic_neutron_net_uuid}
118 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
119 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500120 \ ${loop_catalog_resource_id}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${network} ${xoffset} ${0}
121 \ ${nf_role}= Convert To Lowercase ${network}
122 \ Setup SDC Catalog Resource GenericNeutronNet Properties ${catalog_service_id} ${nf_role} ${loop_catalog_resource_id}
123 \ ${xoffset}= Set Variable ${xoffset+100}
124 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
DR695Hccff30b2017-02-17 18:44:24 -0500125 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500126 #
127 # do deployment artifacts
128 #
129 ${deploymentlist}= Get From Dictionary ${GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING} ${service}
130 :FOR ${deployment} IN @{deploymentlist}
131 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
132 \ Setup SDC Catalog Resource Deployment Artifact Properties ${catalog_service_id} ${loop_catalog_resource_resp} ${catalog_resource_unique_name} ${deployment}
DR695Hccff30b2017-02-17 18:44:24 -0500133 Checkin ASDC Catalog Service ${catalog_service_id}
134 Request Certify ASDC Catalog Service ${catalog_service_id}
135 Start Certify ASDC Catalog Service ${catalog_service_id}
136 # on certify it gets a new id
137 ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id}
138 Approve ASDC Catalog Service ${catalog_service_id}
Brian Freeman796b9eb2018-10-08 08:23:20 -0500139 : FOR ${DIST_INDEX} IN RANGE 1
Brian Freeman18df8912018-05-25 13:27:29 -0500140 \ Log Distribution Attempt ${DIST_INDEX}
141 \ Distribute ASDC Catalog Service ${catalog_service_id}
142 \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
Brian Freemanf940ee92018-05-25 21:09:05 -0500143 \ ${status} ${_} = Run Keyword And Ignore Error Loop Over Check Catalog Service Distributed ${catalog_service_resp['uuid']}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500144 \ Exit For Loop If '${status}'=='PASS'
Brian Freeman8c002d52018-07-30 19:35:36 -0500145 Should Be Equal As Strings ${status} PASS
Jerry Flood3a169a32017-12-01 12:39:10 -0500146 [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources}
Brian Freeman18df8912018-05-25 13:27:29 -0500147
bdfreeman1421b2a49512018-11-25 07:32:19 -0500148Distribute vCPEResCust Model From ASDC
149 [Documentation] goes end to end creating all the asdc objects for the vCPE ResCust Service model and distributing it to the systems. it then returns the service name, vf name and vf module name
150 [Arguments] ${model_zip_path} ${catalog_service_name}= ${cds}= ${service}=
151 # For testing use random service name
Brian Freeman9c42ae12018-11-27 14:33:27 -0500152 #${random}= Get Current Date
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500153 ${uuid}= Generate UUID
154 ${random}= Evaluate str("${uuid}")[:4]
155 ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}_${random}
156 # catalog_service_name already
157 #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500158 Log To Console ${\n}ServiceName: ${catalog_service_name}_${random}
159 #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
160 ${catalog_resource_ids}= Create List
161 ${catalog_resources}= Create Dictionary
162 : FOR ${zip} IN @{model_zip_path}
163 \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds}
164 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
165 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
166 \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
167 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
168 #
169 # do this here because the loop_catalog_resource_resp is different format after adding networks
170 ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
171 #
172 # do allottedresource
173 ${allottedresource_list}= Create List TunnelXConn BRG
174 # Example data
175 #${tunnelxconn_dict}= Create Dictionary invariantUUID=8ac029e7-77aa-40d4-b28a-d17c02d5fd82 UUID=2ddc1b37-d7da-4aab-b645-ed7db34a5d03 node_type=org.openecomp.service.Demovcpevgmux
176 #${brg_dict}= Create Dictionary invariantUUID=ff0337b9-dbe2-4d88-bb74-18bf027ae586 UUID=1b6974f1-4aed-47f4-b962-816aa1261927 node_type=org.openecomp.service.Demovcpevbrgemu
Yang Xu7037e542018-12-28 01:19:26 -0500177 # Create /tmp/vcpe_allotted_resource_data.json with demo vgmux and brgemu CSARs
178 Create Allotted Resource Data File
bdfreeman1421b2a49512018-11-25 07:32:19 -0500179 ${vcpe_ar_data_file} Get File /tmp/vcpe_allotted_resource_data.json
180 ${tunnelxconn_invariant_uuid} Get Json Value ${vcpe_ar_data_file} /tunnelxconn/invariantUUID
181 ${tunnelxconn_uuid} Get Json Value ${vcpe_ar_data_file} /tunnelxconn/UUID
182 ${tunnelxconn_node_type} Get Json Value ${vcpe_ar_data_file} /tunnelxconn/node_type
183 ${brg_invariant_uuid} Get Json Value ${vcpe_ar_data_file} /brg/invariantUUID
184 ${brg_uuid} Get Json Value ${vcpe_ar_data_file} /brg/UUID
185 ${brg_node_type} Get Json Value ${vcpe_ar_data_file} /brg/node_type
186 ${tunnelxconn_dict}= Create Dictionary invariantUUID=${tunnelxconn_invariant_uuid} UUID=${tunnelxconn_uuid} node_type=${tunnelxconn_node_type}
187 ${brg_dict}= Create Dictionary invariantUUID=${brg_invariant_uuid} UUID=${brg_uuid} node_type=${brg_node_type}
188 ${xoffset}= Set Variable ${100}
189 ${allottedresource_uuid}= Get AllottedResource UUID
190 ${random}= Get Current Date
191 :FOR ${allottedresource} in @{allottedresource_list}
192 \ ${loop_catalog_resource_id}= Set Variable ${allottedresource_uuid}
193 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
194 \ ${loop_catalog_resource_id}= Add ASDC Allotted Resource Catalog Resource 00000 ${allottedresource}_${random} ONAP ${loop_catalog_resource_id} ${allottedresource}
195 \ ${loop_catalog_resource_id2}= Add ASDC Resource Instance To Resource ${loop_catalog_resource_id} ${allottedresource_uuid} ${allottedresource} ${xoffset} ${0}
196 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
197 #
198 # Set the properties to relate to the brg and gmux
199 #
200 \ Run Keyword If '${allottedresource}'=='TunnelXConn' Setup SDC Catalog Resource AllottedResource Properties ${catalog_service_id} ${allottedresource} ${loop_catalog_resource_id} ${tunnelxconn_dict['invariantUUID']} ${tunnelxconn_dict['UUID']} ${tunnelxconn_dict['node_type']}
201 \ Run Keyword If '${allottedresource}'=='BRG' Setup SDC Catalog Resource AllottedResource Properties ${catalog_service_id} ${allottedresource} ${loop_catalog_resource_id} ${brg_dict['invariantUUID']} ${brg_dict['UUID']} ${brg_dict['node_type']}
202 #
203 # Set the nf_role nf_type
204 #
205 \ Run Keyword If '${allottedresource}'=='TunnelXConn' Setup SDC Catalog Resource AllottedResource Inputs ${catalog_service_id} ${allottedresource} ${loop_catalog_resource_id}
206 \ Run Keyword If '${allottedresource}'=='BRG' Setup SDC Catalog Resource AllottedResource Inputs ${catalog_service_id} ${allottedresource} ${loop_catalog_resource_id}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500207 \ ${loop_catalog_resource_id}= Certify ASDC Catalog Resource ${loop_catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
208 \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500209 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
210 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
211 Checkin ASDC Catalog Service ${catalog_service_id}
212 Request Certify ASDC Catalog Service ${catalog_service_id}
213 Start Certify ASDC Catalog Service ${catalog_service_id}
214 # on certify it gets a new id
215 ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id}
216 Approve ASDC Catalog Service ${catalog_service_id}
217 : FOR ${DIST_INDEX} IN RANGE 1
218 \ Log Distribution Attempt ${DIST_INDEX}
219 \ Distribute ASDC Catalog Service ${catalog_service_id}
220 \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
221 \ ${status} ${_} = Run Keyword And Ignore Error Loop Over Check Catalog Service Distributed ${catalog_service_resp['uuid']}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500222 \ Exit For Loop If '${status}'=='PASS'
bdfreeman1421b2a49512018-11-25 07:32:19 -0500223 Should Be Equal As Strings ${status} PASS
224 [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources}
225
226
Yang Xu7037e542018-12-28 01:19:26 -0500227Create Allotted Resource Data File
228 [Documentation] Create alloted resource json data file
229 [Arguments]
230 ${allotted_resource}= Create Dictionary
231 ${allotted_csar_map}= Create Dictionary
232 Set To Dictionary ${allotted_csar_map} tunnelxconn=service-Demovcpevgmux-csar.csar
233 Set To Dictionary ${allotted_csar_map} brg=service-Demovcpevbrgemu-csar.csar
234 ${keys}= Get Dictionary Keys ${allotted_csar_map}
235 :for ${key} in @{keys}
236 \ ${csar}= Get From Dictionary ${allotted_csar_map} ${key}
237 \ ${dir} ${ext}= Split String From Right ${csar} - 1
238 \ Extract Zip File /tmp/csar/${csar} /tmp/csar/${dir}
239 \ ${template}= Catenate /tmp/csar/${dir}/Definitions/${dir}-template.yml
240 \ ${json_str}= Template Yaml To Json ${template}
241 \ ${json_obj}= To Json ${json_str}
242 \ ${attrs}= Create Dictionary
243 \ Set To Dictionary ${attrs} invariantUUID=${json_obj['metadata']['invariantUUID']}
244 \ Set To Dictionary ${attrs} UUID=${json_obj['metadata']['UUID']}
245 \ Set To Dictionary ${attrs} node_type=${json_obj['topology_template']['substitution_mappings']['node_type']}
246 \ Set To Dictionary ${allotted_resource} ${key}=${attrs}
247 ${result_str}= Evaluate json.dumps(${allotted_resource}, indent=2) json
248 Log To Console ${result_str}
249 Create File /tmp/vcpe_allotted_resource_data.json ${result_str}
Yang Xu7037e542018-12-28 01:19:26 -0500250
bdfreeman14211ad11d92018-11-17 18:47:37 +0000251Download CSAR
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500252 [Documentation] Download CSAR
bdfreeman14211ad11d92018-11-17 18:47:37 +0000253 [Arguments] ${catalog_service_id} ${save_directory}=/tmp/csar
254 # get meta data
255 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/filteredDataByParams?include=toscaArtifacts ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
256 ${csar_resource_id}= Set Variable ${resp.json()['toscaArtifacts']['assettoscacsar']['uniqueId']}
257 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/artifacts/${csar_resource_id}
258 ${csar_file_name}= Set Variable ${resp.json()['artifactName']}
259 ${base64Obj}= Set Variable ${resp.json()['base64Contents']}
260 ${binObj}= Evaluate base64.b64decode("${base64Obj}") modules=base64
261 Create Binary File ${save_directory}/${csar_file_name} ${binObj}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500262 Log To Console Downloaded:${csar_file_name}
bdfreeman14211ad11d92018-11-17 18:47:37 +0000263 [Return]
264
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500265
266Get Generic NeutronNet UUID
267 [Documentation] Lookoup the UUID of the Generic NeutronNetwork Resource
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500268 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_QUERY_PATH}/Generic%20NeutronNet/resourceVersion/1.0 ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
269 [Return] ${resp.json()['allVersions']['1.0']}
270
bdfreeman1421b2a49512018-11-25 07:32:19 -0500271Get AllottedResource UUID
272 [Documentation] Lookoup the UUID of the Allotted Resource
273 # if this fails then the AllottedResource template got deleted from SDC by mistake
274 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_QUERY_PATH}/AllottedResource/resourceVersion/1.0 ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
275 [Return] ${resp.json()['allVersions']['1.0']}
276
Brian Freeman18df8912018-05-25 13:27:29 -0500277Loop Over Check Catalog Service Distributed
Gary Wu58d58532018-07-27 16:02:51 -0700278 [Arguments] ${catalog_service_id}
Brian Freemanadaa2372018-10-24 12:25:22 -0500279 # SO watchdog timeout is 300 seconds need buffer
bdfreeman1421b2a49512018-11-25 07:32:19 -0500280 ${dist_status}= Set Variable CONTINUE
281 : FOR ${CHECK_INDEX} IN RANGE 20
Brian Freemanadaa2372018-10-24 12:25:22 -0500282 \ ${status} ${_} = Run Keyword And Ignore Error Check Catalog Service Distributed ${catalog_service_id} ${dist_status}
Gary Wu58d58532018-07-27 16:02:51 -0700283 \ Sleep 20s
Brian Freemanf940ee92018-05-25 21:09:05 -0500284 \ Return From Keyword If '${status}'=='PASS'
bdfreeman1421b2a49512018-11-25 07:32:19 -0500285 # need a way to exit the loop early on DISTRIBUTION_COMPLETE_ERROR ${dist_status} doesnt work
286 #\ Exit For Loop If '${dist_status}'=='EXIT'
287 Should Be Equal As Strings ${status} PASS
288 [Return]
Brian Freeman18df8912018-05-25 13:27:29 -0500289
DR695Hccff30b2017-02-17 18:44:24 -0500290Setup ASDC Catalog Resource
291 [Documentation] Creates all the steps a vf needs for an asdc catalog resource and returns the id
Yang Xu2ec80382018-11-01 12:30:37 -0400292 [Arguments] ${model_zip_path} ${cds}=
Brian Freemanb568e5e2018-04-05 21:03:38 -0500293 ${license_model_id} ${license_model_version_id}= Add ASDC License Model
294 ${key_group_id}= Add ASDC License Group ${license_model_id} ${license_model_version_id}
295 ${pool_id}= Add ASDC Entitlement Pool ${license_model_id} ${license_model_version_id}
296 ${feature_group_id}= Add ASDC Feature Group ${license_model_id} ${key_group_id} ${pool_id} ${license_model_version_id}
297 ${license_agreement_id}= Add ASDC License Agreement ${license_model_id} ${feature_group_id} ${license_model_version_id}
298 Submit ASDC License Model ${license_model_id} ${license_model_version_id}
299 ${license_model_resp}= Get ASDC License Model ${license_model_id} ${license_model_version_id}
Brian Freeman9c42ae12018-11-27 14:33:27 -0500300 # /var/opt/OpenECOMP_ETE/demo/heat/temp/vCPE_infra.zip
301 ${matches}= Get Regexp Matches ${model_zip_path} temp/(.*)\.zip 1
302 ${software_product_name_prefix}= Set Variable ${matches[0]}
303 ${software_product_id} ${software_product_version_id}= Add ASDC Software Product ${license_agreement_id} ${feature_group_id} ${license_model_resp['vendorName']} ${license_model_id} ${license_model_version_id} ${software_product_name_prefix}
Brian Freemanb568e5e2018-04-05 21:03:38 -0500304 Upload ASDC Heat Package ${software_product_id} ${model_zip_path} ${software_product_version_id}
305 Validate ASDC Software Product ${software_product_id} ${software_product_version_id}
306 Submit ASDC Software Product ${software_product_id} ${software_product_version_id}
307 Package ASDC Software Product ${software_product_id} ${software_product_version_id}
308 ${software_product_resp}= Get ASDC Software Product ${software_product_id} ${software_product_version_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500309 ${catalog_resource_id}= Add ASDC Catalog Resource ${license_agreement_id} ${software_product_resp['name']} ${license_model_resp['vendorName']} ${software_product_id}
Yang Xu2ec80382018-11-01 12:30:37 -0400310 # Check if need to set up CDS properties
311 Run Keyword If '${cds}' == 'vfwng' Setup ASDC Catalog Resource CDS Properties ${catalog_resource_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500312
Brian Freeman391680a2018-08-11 15:20:58 -0500313 ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500314 [Return] ${catalog_resource_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500315
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500316
317Setup SDC Catalog Resource Deployment Artifact Properties
318 [Documentation] Set up Deployment Artiface properties
319 [Arguments] ${catalog_service_id} ${catalog_parent_service_id} ${catalog_resource_unique_id} ${blueprint_file}
320 ${resp}= Get ASDC Catalog Resource Component Instances Properties ${catalog_service_id}
321 #${resp}= Get ASDC Catalog Resource Deployment Artifact Properties ${catalog_service_id}
322 ${blueprint_data} Get File ${SDC_CATALOG_DEPLOYMENT_ARTIFACT_PATH}${blueprint_file}
323 ${payloadData}= Evaluate base64.b64encode('''${blueprint_data}'''.encode('utf-8')) modules=base64
324 ${dict}= Create Dictionary artifactLabel=blueprint artifactName=${blueprint_file} artifactType=DCAE_INVENTORY_BLUEPRINT artifactGroupType=DEPLOYMENT description=${blueprint_file} payloadData=${payloadData}
325 ${data}= Fill JSON Template File ${ASDC_ARTIFACT_UPLOAD_TEMPLATE} ${dict}
326 # POST artifactUpload to resource
327 ${artifact_upload_path}= Catenate ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/resourceInstance/${catalog_resource_unique_id}${ASDC_CATALOG_SERVICE_RESOURCE_ARTIFACT_PATH}
328 ${resp}= Run ASDC MD5 Post Request ${artifact_upload_path} ${data} ${ASDC_DESIGNER_USER_ID}
329 Should Be Equal As Strings ${resp.status_code} 200
330 [Return] ${resp}
331
332
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500333Setup SDC Catalog Resource GenericNeutronNet Properties
bdfreeman1421b2a49512018-11-25 07:32:19 -0500334 [Documentation] Set up GenericNeutronNet properties and inputs
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500335 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_parent_service_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500336 ${resp}= Get ASDC Catalog Resource Component Instances Properties ${catalog_service_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500337 ${componentInstances} Set Variable @{resp['componentInstancesProperties']}
338 # componentInstances can have 1 or more than 1 entry
339 ${passed}= Run Keyword And Return Status Evaluate type(${componentInstances})
340 ${type}= Run Keyword If ${passed} Evaluate type(${componentInstances})
341 ${componentInstancesList}= Run Keyword If "${type}"!="<type 'list'>" Create List ${componentInstances}
342 ... ELSE Set Variable ${componentInstances}
343 :FOR ${item} IN @{componentInstancesList}
344 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${item} ${nf_role}
345 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
346 \ ${componentInstance1}= Set Variable ${item}
347 :FOR ${comp} IN @{resp['componentInstancesProperties']["${componentInstance1}"]}
348 \ ${name} Set Variable ${comp['name']}
349 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${name} network_role
350 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
351 \ ${description} Set Variable ${comp['description']}
352 \ ${description}= Replace String ${description} ${\n} \
353 \ ${uniqueId} Set Variable ${comp['uniqueId']}
354 \ ${parentUniqueId} Set Variable ${comp['parentUniqueId']}
355 \ ${ownerId} Set Variable ${comp['ownerId']}
356 \ ${dict}= Create Dictionary parentUniqueId=${parentUniqueId} ownerId=${ownerId} uniqueId=${uniqueId} description=${description}
357 \ Run Keyword If '${name}'=='network_role' Set To Dictionary ${dict} name=${name} value=${nf_role}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500358 \ ${data}= Fill JSON Template File ${SDC_CATALOG_NET_RESOURCE_INPUT_TEMPLATE} ${dict}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500359 \ ${response}= Set ASDC Catalog Resource Component Instance Properties ${catalog_parent_service_id} ${catalog_service_id} ${data}
360 #\ Log To Console resp=${response}
361 [Return]
362
bdfreeman1421b2a49512018-11-25 07:32:19 -0500363
364Setup SDC Catalog Resource AllottedResource Properties
365 [Documentation] Set up Allotted Resource properties and inputs
366 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_resource_id} ${invariantUUID} ${UUID} ${node_type}
367 # Set component instances properties
368 ${nf_role_lc}= Convert To Lowercase ${nf_role}
369 ${resp}= Get ASDC Catalog Resource Component Instances Properties For Resource ${catalog_resource_id}
370 ${componentInstances} Set Variable @{resp['componentInstancesProperties']}
371 # componentInstances can have 1 or more than 1 entry
372 ${passed}= Run Keyword And Return Status Evaluate type(${componentInstances})
373 ${type}= Run Keyword If ${passed} Evaluate type(${componentInstances})
374 ${componentInstancesList}= Run Keyword If "${type}"!="<type 'list'>" Create List ${componentInstances}
375 ... ELSE Set Variable ${componentInstances}
376 :FOR ${item} IN @{componentInstancesList}
377 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${item} ${nf_role_lc}
378 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
379 \ ${componentInstance1}= Set Variable ${item}
380 ${dict}= Create Dictionary
381 :FOR ${comp} IN @{resp['componentInstancesProperties']["${componentInstance1}"]}
382 \ ${name} Set Variable ${comp['name']}
383 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain Any ${name} network_role providing_service_invariant_uuid providing_service_uuid providing_service_name uniqueId
384 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
385 \ ${parentUniqueId} Set Variable ${comp['parentUniqueId']}
386 \ ${ownerId} Set Variable ${comp['ownerId']}
387 \ Set To Dictionary ${dict} parentUniqueId=${parentUniqueId} ownerId=${ownerId}
388 \ Run Keyword If '${name}'=='providing_service_invariant_uuid' Set To Dictionary ${dict} providing_service_invariant_uuid=${invariantUUID}
389 \ Run Keyword If '${name}'=='providing_service_uuid' Set To Dictionary ${dict} providing_service_uuid=${UUID}
390 \ Run Keyword If '${name}'=='providing_service_name' Set To Dictionary ${dict} providing_service_name=${node_type}
391 # Sets it for each loop but should be one
392 \ ${uniqueId} Set Variable ${comp['uniqueId']}
393 \ ${uniqueId} Fetch From Left ${uniqueId} .
394 \ Set To Dictionary ${dict} uniqueId=${uniqueId}
395 ${data}= Fill JSON Template File ${SDC_CATALOG_ALLOTTED_RESOURCE_PROPERTIES_TEMPLATE} ${dict}
396 ${response}= Set ASDC Catalog Resource Component Instance Properties For Resource ${catalog_resource_id} ${componentInstance1} ${data}
397 Log To Console resp=${response}
398
399
400Setup SDC Catalog Resource AllottedResource Inputs
401 [Documentation] Set up Allotted Resource inputs
402 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_resource_id}
403 # Set vnf inputs
404 ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id}
405 ${dict}= Create Dictionary
406 :FOR ${comp} in @{resp['inputs']}
407 \ ${name} Set Variable ${comp['name']}
408 \ ${uid} Set Variable ${comp['uniqueId']}
409 \ Run Keyword If '${name}'=='nf_type' Set To Dictionary ${dict} nf_type=${nf_role} nf_type_uid=${uid}
410 \ Run Keyword If '${name}'=='nf_role' Set To Dictionary ${dict} nf_role=${nf_role} nf_role_uid=${uid}
411 ${data}= Fill JSON Template File ${SDC_CATALOG_ALLOTTED_RESOURCE_INPUTS_TEMPLATE} ${dict}
412 ${response}= Set ASDC Catalog Resource VNF Inputs ${catalog_resource_id} ${data}
413 [Return] ${response}
414
Yang Xu2ec80382018-11-01 12:30:37 -0400415Setup ASDC Catalog Resource CDS Properties
416 [Documentation] Set up vfwng VNF properties and inputs for CDS
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500417 [Arguments] ${catalog_resource_id}
Yang Xu2ec80382018-11-01 12:30:37 -0400418 # Set vnf module properties
419 ${resp}= Get ASDC Catalog Resource Component Instances ${catalog_resource_id}
420 :FOR ${comp} in @{resp['componentInstances']}
421 \ ${name} Set Variable ${comp['name']}
422 \ ${uniqueId} Set Variable ${comp['uniqueId']}
423 \ ${actualComponentUid} Set Variable ${comp['actualComponentUid']}
424 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${name} abstract_
425 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
426 \ ${response}= Get ASDC Catalog Resource Component Instance Properties ${catalog_resource_id} ${uniqueId} ${actualComponentUid}
427 \ ${dict}= Create Dictionary parent_id=${response[6]['parentUniqueId']}
428 \ Run Keyword If '${name}'=='abstract_vfw' Set To Dictionary ${dict} nfc_function=vfw nfc_naming_policy=SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP
429 \ Run Keyword If '${name}'=='abstract_vpg' Set To Dictionary ${dict} nfc_function=vpg nfc_naming_policy=SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP
430 \ Run Keyword If '${name}'=='abstract_vsn' Set To Dictionary ${dict} nfc_function=vsn nfc_naming_policy=SDNC_Policy.ONAP_VSN_NAMING_TIMESTAMP
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500431 \ ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_VNF_PROPERTIES_TEMPLATE} ${dict}
432 \ ${response}= Set ASDC Catalog Resource Component Instance Properties ${catalog_resource_id} ${uniqueId} ${data}
Yang Xu2ec80382018-11-01 12:30:37 -0400433 \ Log To Console resp=${response}
434
435 # Set vnf inputs
436 ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id}
437 ${dict}= Create Dictionary
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500438 :FOR ${comp} in @{resp['inputs']}
Yang Xu2ec80382018-11-01 12:30:37 -0400439 \ ${name} Set Variable ${comp['name']}
440 \ ${uid} Set Variable ${comp['uniqueId']}
441 \ Run Keyword If '${name}'=='nf_function' Set To Dictionary ${dict} nf_function=ONAP-FIREWALL nf_function_uid=${uid}
442 \ Run Keyword If '${name}'=='nf_type' Set To Dictionary ${dict} nf_type=FIREWALL nf_type_uid=${uid}
443 \ Run Keyword If '${name}'=='nf_naming_code' Set To Dictionary ${dict} nf_naming_code=vfw nf_naming_code_uid=${uid}
444 \ Run Keyword If '${name}'=='nf_role' Set To Dictionary ${dict} nf_role=vFW nf_role_uid=${uid}
445 \ Run Keyword If '${name}'=='cloud_env' Set To Dictionary ${dict} cloud_env=openstack cloud_env_uid=${uid}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500446 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_VNF_INPUTS_TEMPLATE} ${dict}
Yang Xu2ec80382018-11-01 12:30:37 -0400447 ${response}= Set ASDC Catalog Resource VNF Inputs ${catalog_resource_id} ${data}
448
DR695Hccff30b2017-02-17 18:44:24 -0500449Add ASDC License Model
450 [Documentation] Creates an asdc license model and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400451 ${uuid}= Generate UUID
452 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500453 ${map}= Create Dictionary vendor_name=${shortened_uuid}
454 ${data}= Fill JSON Template File ${ASDC_LICENSE_MODEL_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500455 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500456 Should Be Equal As Strings ${resp.status_code} 200
Brian Freemanb568e5e2018-04-05 21:03:38 -0500457 [Return] ${resp.json()['itemId']} ${resp.json()['version']['id']}
DR695Hccff30b2017-02-17 18:44:24 -0500458Get ASDC License Model
459 [Documentation] gets an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400460 [Arguments] ${id} ${version_id}=0.1
Brian Freeman44b8bb32018-05-03 21:08:42 -0500461 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
Jerry Floode2a48d72017-06-21 15:06:29 -0400462 [Return] ${resp.json()}
463Get ASDC License Models
464 [Documentation] gets an asdc license model by its id
Brian Freeman44b8bb32018-05-03 21:08:42 -0500465 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
466
DR695Hccff30b2017-02-17 18:44:24 -0500467 [Return] ${resp.json()}
468Checkin ASDC License Model
469 [Documentation] checksin an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400470 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500471 ${map}= Create Dictionary action=Checkin
472 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500473 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
474 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500475 [Return] ${resp.json()}
476Submit ASDC License Model
477 [Documentation] submits an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400478 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500479 ${map}= Create Dictionary action=Submit
480 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500481 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500482 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500483 [Return] ${resp.json()}
484Checkin ASDC Software Product
485 [Documentation] checksin an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400486 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500487 ${map}= Create Dictionary action=Checkin
Jerry Floode2a48d72017-06-21 15:06:29 -0400488 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500489 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500490 Should Be Equal As Strings ${resp.status_code} 200
Jerry Floode2a48d72017-06-21 15:06:29 -0400491 [Return] ${resp.json()}
492Validate ASDC Software Product
493 [Documentation] checksin an asdc Software Product by its id
494 [Arguments] ${id} ${version_id}=0.1
495 ${data}= Catenate
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500496 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}/orchestration-template-candidate/process ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
497 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500498 [Return] ${resp.json()}
499Submit ASDC Software Product
500 [Documentation] submits an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400501 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500502 ${map}= Create Dictionary action=Submit
Jerry Floode2a48d72017-06-21 15:06:29 -0400503 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500504 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
505 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500506 [Return] ${resp.json()}
507Package ASDC Software Product
508 [Documentation] creates_package on an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400509 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500510 ${map}= Create Dictionary action=Create_Package
Jerry Floode2a48d72017-06-21 15:06:29 -0400511 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500512 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
513 Should Be Equal As Strings ${resp.status_code} 200
Jerry Floode2a48d72017-06-21 15:06:29 -0400514 [Return] ${resp.json()}
DR695Hccff30b2017-02-17 18:44:24 -0500515Add ASDC Entitlement Pool
516 [Documentation] Creates an asdc Entitlement Pool and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400517 [Arguments] ${license_model_id} ${version_id}=0.1
518 ${uuid}= Generate UUID
519 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500520 ${map}= Create Dictionary entitlement_pool_name=${shortened_uuid}
Jerry Floode2a48d72017-06-21 15:06:29 -0400521 ${data}= Fill JSON Template File ${ASDC_ENTITLEMENT_POOL_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500522 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
523 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500524 [Return] ${resp.json()['value']}
525Get ASDC Entitlement Pool
526 [Documentation] gets an asdc Entitlement Pool by its id
527 [Arguments] ${license_model_id} ${pool_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500528 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH}/${pool_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500529 [Return] ${resp.json()}
530Add ASDC License Group
531 [Documentation] Creates an asdc license group and returns its id
Brian Freemanb568e5e2018-04-05 21:03:38 -0500532 [Arguments] ${license_model_id} ${version_id}=1.0
Jerry Floode2a48d72017-06-21 15:06:29 -0400533 ${uuid}= Generate UUID
534 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500535 ${map}= Create Dictionary key_group_name=${shortened_uuid}
Jerry Floode2a48d72017-06-21 15:06:29 -0400536 ${data}= Fill JSON Template File ${ASDC_KEY_GROUP_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500537 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
538 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500539 [Return] ${resp.json()['value']}
540Get ASDC License Group
541 [Documentation] gets an asdc license group by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400542 [Arguments] ${license_model_id} ${group_id} ${version_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500543 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH}/${group_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500544 [Return] ${resp.json()}
545Add ASDC Feature Group
546 [Documentation] Creates an asdc Feature Group and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400547 [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} ${version_id}=0.1
548 ${uuid}= Generate UUID
549 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Jerry Flood80ff9852017-08-11 06:47:14 -0400550 ${map}= Create Dictionary feature_group_name=${shortened_uuid} key_group_id=${key_group_id} entitlement_pool_id=${entitlement_pool_id} manufacturer_reference_number=mrn${shortened_uuid}
Jerry Floode2a48d72017-06-21 15:06:29 -0400551 ${data}= Fill JSON Template File ${ASDC_FEATURE_GROUP_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500552 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_FEATURE_GROUP_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
553 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500554 [Return] ${resp.json()['value']}
555Get ASDC Feature Group
556 [Documentation] gets an asdc Feature Group by its id
557 [Arguments] ${license_model_id} ${group_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500558 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_FEATURE_GROUP_PATH}/${group_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500559 [Return] ${resp.json()}
560Add ASDC License Agreement
561 [Documentation] Creates an asdc License Agreement and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400562 [Arguments] ${license_model_id} ${feature_group_id} ${version_id}=0.1
563 ${uuid}= Generate UUID
564 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500565 ${map}= Create Dictionary license_agreement_name=${shortened_uuid} feature_group_id=${feature_group_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400566 ${data}= Fill JSON Template File ${ASDC_LICENSE_AGREEMENT_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500567 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
568 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500569 [Return] ${resp.json()['value']}
570Get ASDC License Agreement
571 [Documentation] gets an asdc License Agreement by its id
572 [Arguments] ${license_model_id} ${agreement_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500573 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH}/${agreement_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500574 [Return] ${resp.json()}
575Add ASDC Software Product
576 [Documentation] Creates an asdc Software Product and returns its id
Brian Freeman9c42ae12018-11-27 14:33:27 -0500577 [Arguments] ${license_agreement_id} ${feature_group_id} ${license_model_name} ${license_model_id} ${license_model_version_id} ${name_prefix}
Jerry Floode2a48d72017-06-21 15:06:29 -0400578 ${uuid}= Generate UUID
Brian Freeman9c42ae12018-11-27 14:33:27 -0500579 ${shortened_uuid}= Evaluate str("${uuid}")[:13]
580 ${software_product_name}= Catenate ${name_prefix} ${shortened_uuid}
581 ${map}= Create Dictionary software_product_name=${software_product_name} feature_group_id=${feature_group_id} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} vendor_id=${license_model_id} version_id=${license_model_version_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400582 ${data}= Fill JSON Template File ${ASDC_SOFTWARE_PRODUCT_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500583 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
584 Should Be Equal As Strings ${resp.status_code} 200
Brian Freemanb568e5e2018-04-05 21:03:38 -0500585 [Return] ${resp.json()['itemId']} ${resp.json()['version']['id']}
DR695Hccff30b2017-02-17 18:44:24 -0500586Get ASDC Software Product
587 [Documentation] gets an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400588 [Arguments] ${software_product_id} ${version_id}=0.1
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500589 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500590 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500591
DR695Hccff30b2017-02-17 18:44:24 -0500592Add ASDC Catalog Resource
593 [Documentation] Creates an asdc Catalog Resource and returns its id
594 [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id}
595 ${map}= Create Dictionary software_product_id=${software_product_id} software_product_name=${software_product_name} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400596 ${data}= Fill JSON Template File ${ASDC_CATALOG_RESOURCE_TEMPLATE} ${map}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500597 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500598 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500599 [Return] ${resp.json()['uniqueId']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500600
601Add ASDC Allotted Resource Catalog Resource
602 [Documentation] Creates an asdc Allotted Resource Catalog Resource and returns its id
603 [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id} ${subcategory}
604 ${map}= Create Dictionary software_product_id=${software_product_id} software_product_name=${software_product_name} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} subcategory=${subcategory}
605 ${data}= Fill JSON Template File ${ASDC_ALLOTTED_RESOURCE_CATALOG_RESOURCE_TEMPLATE} ${map}
606 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500607 Should Be Equal As Strings ${resp.status_code} 201
bdfreeman1421b2a49512018-11-25 07:32:19 -0500608 [Return] ${resp.json()['uniqueId']}
609
DR695Hccff30b2017-02-17 18:44:24 -0500610Mark ASDC Catalog Resource Inactive
611 [Documentation] deletes an asdc Catalog Resource
612 [Arguments] ${catalog_resource_id}
613 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500614 Should Be Equal As Strings ${resp.status_code} 204
DR695Hccff30b2017-02-17 18:44:24 -0500615 [Return] ${resp}
616Delete Inactive ASDC Catalog Resources
617 [Documentation] delete all asdc Catalog Resources that are inactive
618 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500619 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500620 [Return] ${resp.json()}
621Get ASDC Catalog Resource
622 [Documentation] gets an asdc Catalog Resource by its id
623 [Arguments] ${catalog_resource_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500624 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500625 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500626
Yang Xu2ec80382018-11-01 12:30:37 -0400627Get ASDC Catalog Resource Component Instances
628 [Documentation] gets asdc Catalog Resource Component Instances by its id
629 [Arguments] ${catalog_resource_id}
630 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstances ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
631 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500632
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500633Get ASDC Catalog Resource Deployment Artifact Properties
634 [Documentation] gets asdc Catalog Resource Deployment Artiface Properties by its id
635 [Arguments] ${catalog_resource_id}
636 #${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstances ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
637 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=deploymentArtifacts ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
638 [Return] ${resp.json()}
639
640
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500641Get ASDC Catalog Resource Component Instances Properties
642 [Documentation] gets asdc Catalog Resource Component Instances Properties by its id
643 [Arguments] ${catalog_resource_id}
644 #${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
645 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
646 [Return] ${resp.json()}
647
bdfreeman1421b2a49512018-11-25 07:32:19 -0500648Get ASDC Catalog Resource Component Instances Properties For Resource
649 [Documentation] gets asdc Catalog Resource Component Instances Properties for a Resource (VF) by its id
650 [Arguments] ${catalog_resource_id}
651 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
652 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500653
Yang Xu2ec80382018-11-01 12:30:37 -0400654Get ASDC Catalog Resource Inputs
655 [Documentation] gets asdc Catalog Inputs by its id
656 [Arguments] ${catalog_resource_id}
657 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=inputs ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
658 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500659
Yang Xu2ec80382018-11-01 12:30:37 -0400660Get ASDC Catalog Resource Component Instance Properties
661 [Documentation] gets an asdc Catalog Resource properties by its id
662 [Arguments] ${catalog_resource_id} ${component_instance_id} ${component_id}
663 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/componentInstances/${component_instance_id}/${component_id}/inputs ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
664 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500665
Yang Xu2ec80382018-11-01 12:30:37 -0400666Set ASDC Catalog Resource Component Instance Properties
667 [Documentation] sets an asdc Catalog Resource by its id
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500668 [Arguments] ${catalog_resource_id} ${component_parent_service_id} ${data}
669 #${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${component_parent_service_id}/resourceInstance/${catalog_resource_id}/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
670 ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_SERVICES_PATH}/${component_parent_service_id}/resourceInstance/${catalog_resource_id}/properties ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500671 [Return] ${resp.json()}
672
673Set ASDC Catalog Resource Component Instance Properties For Resource
674 [Documentation] sets an asdc Catalog Resource by its id
675 [Arguments] ${catalog_parent_resource_id} ${catalog_resource_id} ${data}
676 #${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_parent_resource_id}/resourceInstance/${catalog_resource_id}/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
677 ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_parent_resource_id}/resourceInstance/${catalog_resource_id}/properties ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
678 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500679
Yang Xu74cfb862018-12-06 21:57:32 -0500680Set CDS Catalog Resource Component Instance Properties
681 [Documentation] sets an asdc Catalog Resource by its id
682 [Arguments] ${catalog_resource_id} ${component_instance_id} ${data}
683 ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/resourceInstance/${component_instance_id}/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
684 [Return] ${resp.json()}
685
Yang Xu2ec80382018-11-01 12:30:37 -0400686Set ASDC Catalog Resource VNF Inputs
687 [Documentation] sets an asdc Catalog Resource by its id
688 [Arguments] ${catalog_resource_id} ${data}
689 ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/update/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
690 [Return] ${resp.json()}
Brian Freeman79b00ce2018-11-01 14:57:53 -0500691Get SDC Demo Vnf Catalog Resource
692 [Documentation] gets resource id's for demonstration VNFs for instantiate
693 [Arguments] ${service_name}
694 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/serviceName/${service_name}/serviceVersion/1.0
695 @{ITEMS}= Copy List ${resp.json()['componentInstances']}
696 ${demo_catalog_resource}= Create Dictionary
697 :FOR ${ELEMENT} IN @{ITEMS}
698 \ Log ${ELEMENT['name']}
699 \ Log ${ELEMENT['groupInstances'][0]['groupName']}
700 \ ${vnf}= Get VNF From Group Name ${ELEMENT['groupInstances'][0]['groupName']} ${service_name}
701 \ ${vnf_data}= Create Dictionary vnf_type=${ELEMENT['name']} vf_module=${ELEMENT['groupInstances'][0]['groupName']}
702 \ LOG ${vnf_data}
703 \ Set To Dictionary ${demo_catalog_resource} ${vnf}=${vnf_data}
704 \ LOG ${demo_catalog_resource}
705 [Return] ${demo_catalog_resource}
706
707Get VNF From Group Name
708 [Documentation] looks up vnf key from service mapping for a regex on groupName and service_name
709 [Arguments] ${group_name} ${service_name}
710 ${vnf}= Set Variable If
711 ... ('${service_name}'=='demoVFWCL') and ('base_vfw' in '${group_name}') vFWSNK
712 ... ('${service_name}'=='demoVFWCL') and ('base_vpkg' in '${group_name}') vPKG
713 ... ('${service_name}'=='demoVLB') and ('base_vlb' in '${group_name}') vLB
714 [Return] ${vnf}
DR695Hccff30b2017-02-17 18:44:24 -0500715Checkin ASDC Catalog Resource
716 [Documentation] checksin an asdc Catalog Resource by its id
717 [Arguments] ${catalog_resource_id}
718 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400719 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500720 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500721 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500722 [Return] ${resp.json()}
723Request Certify ASDC Catalog Resource
724 [Documentation] requests certify on an asdc Catalog Resource by its id
725 [Arguments] ${catalog_resource_id}
726 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400727 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500728 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500729 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500730 [Return] ${resp.json()}
731Start Certify ASDC Catalog Resource
732 [Documentation] start certify an asdc Catalog Resource by its id
733 [Arguments] ${catalog_resource_id}
734 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500735 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500736 [Return] ${resp.json()}
737Certify ASDC Catalog Resource
738 [Documentation] start certify an asdc Catalog Resource by its id and returns the new id
Brian Freemandb1e7412018-08-01 12:46:01 -0500739 [Arguments] ${catalog_resource_id} ${user_id}=${ASDC_TESTER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500740 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400741 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
Brian Freemandb1e7412018-08-01 12:46:01 -0500742 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${user_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500743 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500744 [Return] ${resp.json()['uniqueId']}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400745
DR695Hccff30b2017-02-17 18:44:24 -0500746Upload ASDC Heat Package
Brian Freemanf508ab22018-03-15 21:19:41 -0500747 [Documentation] Creates an asdc Software Product and returns its id
748 [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400749 ${files}= Create Dictionary
750 Create Multi Part ${files} upload ${file_path} contentType=application/zip
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500751 ${resp}= Run ASDC Post Files Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id}${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} ${files} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
752 Should Be Equal As Strings ${resp.status_code} 200
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400753
DR695Hccff30b2017-02-17 18:44:24 -0500754Add ASDC Catalog Service
755 [Documentation] Creates an asdc Catalog Service and returns its id
jf986075010a42017-02-22 16:52:54 -0500756 [Arguments] ${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400757 ${uuid}= Generate UUID
jf986075010a42017-02-22 16:52:54 -0500758 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Jerry Floode2a48d72017-06-21 15:06:29 -0400759 ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name}
jf986075010a42017-02-22 16:52:54 -0500760 ${map}= Create Dictionary service_name=${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400761 ${data}= Fill JSON Template File ${ASDC_CATALOG_SERVICE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500762 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500763 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500764 [Return] ${resp.json()['uniqueId']}
765Mark ASDC Catalog Service Inactive
766 [Documentation] Deletes an asdc Catalog Service
767 [Arguments] ${catalog_service_id}
768 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500769 Should Be Equal As Strings ${resp.status_code} 204
DR695Hccff30b2017-02-17 18:44:24 -0500770 [Return] ${resp}
771Delete Inactive ASDC Catalog Services
772 [Documentation] delete all asdc Catalog Serivces that are inactive
773 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_SERVICES_PATH} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500774 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500775 [Return] ${resp.json()}
776Get ASDC Catalog Service
777 [Documentation] gets an asdc Catalog Service by its id
778 [Arguments] ${catalog_service_id}
779 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
780 [Return] ${resp.json()}
781Checkin ASDC Catalog Service
782 [Documentation] checksin an asdc Catalog Service by its id
783 [Arguments] ${catalog_service_id}
784 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400785 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500786 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500787 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500788 [Return] ${resp.json()}
789Request Certify ASDC Catalog Service
790 [Documentation] requests certify on an asdc Catalog Service by its id
791 [Arguments] ${catalog_service_id}
792 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400793 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500794 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500795 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500796 [Return] ${resp.json()}
797Start Certify ASDC Catalog Service
798 [Documentation] start certify an asdc Catalog Service by its id
799 [Arguments] ${catalog_service_id}
800 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500801 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500802 [Return] ${resp.json()}
803Certify ASDC Catalog Service
804 [Documentation] start certify an asdc Catalog Service by its id and returns the new id
805 [Arguments] ${catalog_service_id}
806 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400807 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500808 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500809 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500810 [Return] ${resp.json()['uniqueId']}
811Approve ASDC Catalog Service
812 [Documentation] approve an asdc Catalog Service by its id
813 [Arguments] ${catalog_service_id}
814 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400815 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500816 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH}${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} ${data} ${ASDC_GOVERNOR_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500817 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500818 [Return] ${resp.json()}
819Distribute ASDC Catalog Service
820 [Documentation] distribute an asdc Catalog Service by its id
821 [Arguments] ${catalog_service_id}
822 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} ${None} ${ASDC_OPS_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500823 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500824 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500825
DR695Hccff30b2017-02-17 18:44:24 -0500826Add ASDC Resource Instance
827 [Documentation] Creates an asdc Resource Instance and returns its id
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500828 [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name} ${xoffset}=${0} ${yoffset}=${0}
DR695Hccff30b2017-02-17 18:44:24 -0500829 ${milli_timestamp}= Generate MilliTimestamp UUID
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500830 ${xoffset}= Set Variable ${xoffset+306}
831 ${yoffset}= Set Variable ${yoffset+248}
832 ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} posX=${xoffset} posY=${yoffset}
Jerry Floode2a48d72017-06-21 15:06:29 -0400833 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500834 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500835 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500836 [Return] ${resp.json()['uniqueId']}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500837
bdfreeman1421b2a49512018-11-25 07:32:19 -0500838Add ASDC Resource Instance To Resource
839 [Documentation] Creates an asdc Resource Instance in a Resource (VF) and returns its id
840 [Arguments] ${parent_catalog_resource_id} ${catalog_resource_id} ${catalog_resource_name} ${xoffset}=${0} ${yoffset}=${0}
841 ${milli_timestamp}= Generate MilliTimestamp UUID
842 ${xoffset}= Set Variable ${xoffset+306}
843 ${yoffset}= Set Variable ${yoffset+248}
844 ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} posX=${xoffset} posY=${yoffset}
845 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
846 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${parent_catalog_resource_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500847 Should Be Equal As Strings ${resp.status_code} 201
bdfreeman1421b2a49512018-11-25 07:32:19 -0500848 [Return] ${resp.json()['uniqueId']}
849
DR695Hccff30b2017-02-17 18:44:24 -0500850Get Catalog Service Distribution
851 [Documentation] gets an asdc catalog Service distrbution
852 [Arguments] ${catalog_service_uuid}
853 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_uuid}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} ${ASDC_OPS_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500854 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500855 [Return] ${resp.json()}
856Check Catalog Service Distributed
857 [Documentation] gets an asdc catalog Service distrbution
Brian Freemanadaa2372018-10-24 12:25:22 -0500858 [Arguments] ${catalog_service_uuid} ${dist_status}
DR695Hccff30b2017-02-17 18:44:24 -0500859 ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500860 Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed
DR695Hccff30b2017-02-17 18:44:24 -0500861 ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']}
862 @{ITEMS}= Copy List ${det_resp['distributionStatusList']}
Brian Freemanf508ab22018-03-15 21:19:41 -0500863 Should Not Be Empty ${ITEMS}
Brian Freemana62644f2018-05-13 12:47:38 -0500864 ${SO_COMPLETE} Set Variable FALSE
bdfreeman1421b2a49512018-11-25 07:32:19 -0500865 ${dist_status} Set Variable CONTINUE
866 Should Not Be Empty ${ITEMS}
DR695Hccff30b2017-02-17 18:44:24 -0500867 :FOR ${ELEMENT} IN @{ITEMS}
Brian Freemanf508ab22018-03-15 21:19:41 -0500868 \ Log ${ELEMENT['omfComponentID']}
DR695Hccff30b2017-02-17 18:44:24 -0500869 \ Log ${ELEMENT['status']}
Brian Freeman41ab5e52018-08-08 14:24:23 -0500870 \ ${SO_COMPLETE} Set Variable If (('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_OK')) or ('${SO_COMPLETE}'=='TRUE') TRUE
Brian Freemaneca71072018-08-16 14:50:16 -0500871 \ Exit For Loop If ('${SO_COMPLETE}'=='TRUE')
872 \ Exit For Loop If ('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_ERROR')
Brian Freemanadaa2372018-10-24 12:25:22 -0500873 \ ${dist_status}= Set Variable If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml')) EXIT
874 \ Exit For Loop If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml'))
Brian Freemana62644f2018-05-13 12:47:38 -0500875 Should Be True ( '${SO_COMPLETE}'=='TRUE') SO Test
bdfreeman1421b2a49512018-11-25 07:32:19 -0500876 [Return]
877
DR695Hccff30b2017-02-17 18:44:24 -0500878Get Catalog Service Distribution Details
879 [Documentation] gets an asdc catalog Service distrbution details
880 [Arguments] ${catalog_service_distribution_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500881 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH}/${catalog_service_distribution_id} ${ASDC_OPS_USER_ID}
882 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500883 [Return] ${resp.json()}
884Run ASDC Health Check
885 [Documentation] Runs a ASDC health check
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500886 ${session}= Create Session asdc ${ASDC_FE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500887 ${uuid}= Generate UUID
888 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500889 ${resp}= Get Request asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers}
Brian Freemanadaa2372018-10-24 12:25:22 -0500890 # only test for HTTP 200 to determine SDC Health. SDC_DE_HEALTH is informational
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500891 Should Be Equal As Strings ${resp.status_code} 200 SDC DOWN
Brian Freeman5cf5fa62018-04-23 20:28:16 -0500892 ${SDC_DE_HEALTH}= Catenate DOWN
DR695Hccff30b2017-02-17 18:44:24 -0500893 @{ITEMS}= Copy List ${resp.json()['componentsInfo']}
894 :FOR ${ELEMENT} IN @{ITEMS}
895 \ Log ${ELEMENT['healthCheckStatus']}
Brian Freemane546f7e2018-04-19 12:17:56 -0500896 \ ${SDC_DE_HEALTH} Set Variable If (('DE' in '${ELEMENT['healthCheckComponent']}') and ('${ELEMENT['healthCheckStatus']}' == 'UP')) or ('${SDC_DE_HEALTH}'=='UP') UP
Brian Freemand5743d52018-11-05 11:05:43 -0500897 Log To Console (DMaaP:${SDC_DE_HEALTH}) no_newline=true
DR695Hccff30b2017-02-17 18:44:24 -0500898Run ASDC Get Request
899 [Documentation] Runs an ASDC get request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500900 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500901 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500902 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500903 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500904 ${uuid}= Generate UUID
905 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500906 ${resp}= Get Request asdc ${data_path} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500907 Log Received response from asdc ${resp.text}
908 [Return] ${resp}
909Run ASDC Put Request
910 [Documentation] Runs an ASDC put request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500911 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500912 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500913 Log Creating session ${MY_ASDC_BE_ENDPOINT}
914 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500915 ${uuid}= Generate UUID
916 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500917 ${resp}= Put Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500918 Log Received response from asdc ${resp.text}
919 [Return] ${resp}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400920
DR695Hccff30b2017-02-17 18:44:24 -0500921Run ASDC Post Files Request
922 [Documentation] Runs an ASDC post request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500923 [Arguments] ${data_path} ${files} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500924 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500925 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500926 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500927 ${uuid}= Generate UUID
928 ${headers}= Create Dictionary Accept=application/json Content-Type=multipart/form-data USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500929 ${resp}= Post Request asdc ${data_path} files=${files} headers=${headers}
930 Log Received response from asdc ${resp.text}
931 [Return] ${resp}
932
933Run ASDC MD5 Post Request
934 [Documentation] Runs an ASDC post request with MD5 Checksum header
935 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
936 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
937 Log Creating session ${MY_ASDC_BE_ENDPOINT}
938 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
939 ${uuid}= Generate UUID
940 ${data_string}= Evaluate json.dumps(${data}) json
941 ${md5checksum}= Evaluate md5.new('''${data_string}''').hexdigest() modules=md5
942 ${base64md5checksum}= Evaluate base64.b64encode("${md5checksum}") modules=base64
943 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} Content-MD5=${base64md5checksum}
944 ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500945 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400946 [Return] ${resp}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400947
DR695Hccff30b2017-02-17 18:44:24 -0500948Run ASDC Post Request
949 [Documentation] Runs an ASDC post request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500950 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500951 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500952 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500953 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500954 ${uuid}= Generate UUID
955 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500956 ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500957 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400958 [Return] ${resp}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500959
DR695Hccff30b2017-02-17 18:44:24 -0500960Run ASDC Delete Request
961 [Documentation] Runs an ASDC delete request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500962 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500963 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500964 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500965 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500966 ${uuid}= Generate UUID
967 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500968 ${resp}= Delete Request asdc ${data_path} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500969 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400970 [Return] ${resp}
DR695Hccff30b2017-02-17 18:44:24 -0500971Open ASDC GUI
972 [Documentation] Logs in to ASDC GUI
973 [Arguments] ${PATH}
974 ## Setup Browever now being managed by the test case
975 ##Setup Browser
DR695Hbf5a3a32017-06-30 13:09:57 -0400976 Go To ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -0500977 Maximize Browser Window
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400978
DR695Hccff30b2017-02-17 18:44:24 -0500979 Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
DR695Hbf5a3a32017-06-30 13:09:57 -0400980 Log Logging in to ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -0500981 Title Should Be ASDC
Jerry Floode2a48d72017-06-21 15:06:29 -0400982 Wait Until Page Contains Element xpath=//div/a[text()='SDC'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
DR695Hbf5a3a32017-06-30 13:09:57 -0400983 Log Logged in to ${ASDC_FE_ENDPOINT}${PATH}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400984
985
986Create Multi Part
987 [Arguments] ${addTo} ${partName} ${filePath} ${contentType}=${None}
988 ${fileData}= Get Binary File ${filePath}
989 ${fileDir} ${fileName}= Split Path ${filePath}
990 ${partData}= Create List ${fileName} ${fileData} ${contentType}
991 Set To Dictionary ${addTo} ${partName}=${partData}
Brian Freemanf940ee92018-05-25 21:09:05 -0500992