blob: b790525c6f7635baf522f883be5875882e6ba048 [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
DR695H910097e2019-05-08 13:55:32 -04008Library SeleniumLibrary
Brian Freeman2e1d0ff2019-01-23 09:38:13 -05009Library String
10Library StringTemplater
Yang Xu7037e542018-12-28 01:19:26 -050011Library ArchiveLibrary
12Library HEATUtils
Brian Freeman15033782019-03-22 15:48:55 -050013Library DateTime
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
kaihlavi06fa4ee2019-05-22 19:08:14 +030071 [Documentation] Goes end to end creating all the ASDC objects based ONAP 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
kaihlavi06fa4ee2019-05-22 19:08:14 +030081 # GLOBAL_SERVICE_VNF_MAPPING has the logical mapping but it is not the same key as model_zip_path
Brian Freemanee02b312019-02-04 20:36:08 -050082 # ${vnflist}= Get From Dictionary ${GLOBAL_SERVICE_VNF_MAPPING} ${service}
kaihlavi06fa4ee2019-05-22 19:08:14 +030083 # Save the resource_id in a dictionary keyed by the resource name in the zipfile name (vFWDT_vFWSNK.zip or vFWDT_vPKG.zip)
84 # Create the resources but do not immediately add resource
Brian Freemanee02b312019-02-04 20:36:08 -050085 # Add Resource to Service in a separate FOR loop
Brian Freemanee02b312019-02-04 20:36:08 -050086 ${resource_types}= Create Dictionary
87
DR695H910097e2019-05-08 13:55:32 -040088 :FOR ${zip} IN @{model_zip_path}
Yang Xu2ec80382018-11-01 12:30:37 -040089 \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds}
kaihlavi06fa4ee2019-05-22 19:08:14 +030090 # zip can be vFW.zip or vFWDT_VFWSNK.zip
Brian Freemanee02b312019-02-04 20:36:08 -050091 \ ${resource_type_match}= Get Regexp Matches ${zip} ${service}_(.*)\.zip 1
Brian Freeman12ff1842019-02-13 13:54:48 -050092 # Need to be able to distribute preload for vFWCL vFWSNK and vFWDT vFWSNK to prepend service to vnf_type
93 \ ${resource_type_string}= Set Variable If len(${resource_type_match})==0 ${service} ${service}${resource_type_match[0]}
Brian Freemanee02b312019-02-04 20:36:08 -050094 \ 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
kaihlavi06fa4ee2019-05-22 19:08:14 +0300101 ${xoffset}= Set Variable ${0}
Brian Freemanee02b312019-02-04 20:36:08 -0500102
DR695H910097e2019-05-08 13:55:32 -0400103 :FOR ${vnf} IN @{vnflist}
Brian Freemanee02b312019-02-04 20:36:08 -0500104 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${resource_types['${vnf}']}
105 \ Set To Dictionary ${catalog_resources} ${resource_types['${vnf}']}=${loop_catalog_resource_resp}
106 \ ${catalog_resource_unique_name}= Add ASDC Resource Instance ${catalog_service_id} ${resource_types['${vnf}']} ${loop_catalog_resource_resp['name']} ${xoffset}
107 \ ${xoffset}= Set Variable ${xoffset+100}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500108 #
109 # do this here because the loop_catalog_resource_resp is different format after adding networks
110 ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
111 #
112 # do network
113 ${networklist}= Get From Dictionary ${GLOBAL_SERVICE_GEN_NEUTRON_NETWORK_MAPPING} ${service}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500114 ${generic_neutron_net_uuid}= Get Generic NeutronNet UUID
DR695H910097e2019-05-08 13:55:32 -0400115 :FOR ${network} IN @{networklist}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500116 \ ${loop_catalog_resource_id}= Set Variable ${generic_neutron_net_uuid}
117 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
118 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
Yang Xufac7a632019-05-17 01:01:26 -0400119 \ ${loop_catalog_resource_id}= Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${network} ${xoffset} ${0} VL
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500120 \ ${nf_role}= Convert To Lowercase ${network}
121 \ Setup SDC Catalog Resource GenericNeutronNet Properties ${catalog_service_id} ${nf_role} ${loop_catalog_resource_id}
122 \ ${xoffset}= Set Variable ${xoffset+100}
123 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
DR695Hccff30b2017-02-17 18:44:24 -0500124 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500125 #
126 # do deployment artifacts
127 #
128 ${deploymentlist}= Get From Dictionary ${GLOBAL_SERVICE_DEPLOYMENT_ARTIFACT_MAPPING} ${service}
129 :FOR ${deployment} IN @{deploymentlist}
130 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
131 \ 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 -0500132 Checkin ASDC Catalog Service ${catalog_service_id}
133 Request Certify ASDC Catalog Service ${catalog_service_id}
134 Start Certify ASDC Catalog Service ${catalog_service_id}
135 # on certify it gets a new id
136 ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id}
137 Approve ASDC Catalog Service ${catalog_service_id}
DR695H910097e2019-05-08 13:55:32 -0400138 :FOR ${DIST_INDEX} IN RANGE 1
Brian Freeman18df8912018-05-25 13:27:29 -0500139 \ Log Distribution Attempt ${DIST_INDEX}
140 \ Distribute ASDC Catalog Service ${catalog_service_id}
141 \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
Brian Freemanf940ee92018-05-25 21:09:05 -0500142 \ ${status} ${_} = Run Keyword And Ignore Error Loop Over Check Catalog Service Distributed ${catalog_service_resp['uuid']}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500143 \ Exit For Loop If '${status}'=='PASS'
Brian Freeman8c002d52018-07-30 19:35:36 -0500144 Should Be Equal As Strings ${status} PASS
Jerry Flood3a169a32017-12-01 12:39:10 -0500145 [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 -0500146
bdfreeman1421b2a49512018-11-25 07:32:19 -0500147Distribute vCPEResCust Model From ASDC
kaihlavi06fa4ee2019-05-22 19:08:14 +0300148 [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
bdfreeman1421b2a49512018-11-25 07:32:19 -0500149 [Arguments] ${model_zip_path} ${catalog_service_name}= ${cds}= ${service}=
150 # For testing use random service name
Brian Freeman9c42ae12018-11-27 14:33:27 -0500151 #${random}= Get Current Date
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500152 ${uuid}= Generate UUID
153 ${random}= Evaluate str("${uuid}")[:4]
154 ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}_${random}
155 # catalog_service_name already
156 #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500157 Log To Console ${\n}ServiceName: ${catalog_service_name}_${random}
158 #${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
159 ${catalog_resource_ids}= Create List
160 ${catalog_resources}= Create Dictionary
DR695H910097e2019-05-08 13:55:32 -0400161 :FOR ${zip} IN @{model_zip_path}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500162 \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip} ${cds}
163 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
164 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
165 \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
166 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
167 #
168 # do this here because the loop_catalog_resource_resp is different format after adding networks
169 ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
170 #
171 # do allottedresource
172 ${allottedresource_list}= Create List TunnelXConn BRG
173 # Example data
174 #${tunnelxconn_dict}= Create Dictionary invariantUUID=8ac029e7-77aa-40d4-b28a-d17c02d5fd82 UUID=2ddc1b37-d7da-4aab-b645-ed7db34a5d03 node_type=org.openecomp.service.Demovcpevgmux
175 #${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 -0500176 # Create /tmp/vcpe_allotted_resource_data.json with demo vgmux and brgemu CSARs
177 Create Allotted Resource Data File
Brian Freemana8ceb692019-03-03 09:37:54 -0500178 ${vcpe_ar_data_file} OperatingSystem.Get File /tmp/vcpe_allotted_resource_data.json
DR695H0ca56d12019-05-14 11:48:20 -0400179 ${tunnelxconn_invariant_uuid}= Catenate ${vcpe_ar_data_file.json()['tunnelxconn']['invariantUUID']}
180 ${tunnelxconn_uuid}= Catenate ${vcpe_ar_data_file.json()['tunnelxconn']['UUID']}
181 ${tunnelxconn_node_type}= Catenate ${vcpe_ar_data_file.json()['tunnelxconn']['node_type']}
182 ${brg_invariant_uuid}= Catenate ${vcpe_ar_data_file.json()['brg']['invariantUUID']}
183 ${brg_uuid}= Catenate ${vcpe_ar_data_file.json()['brg']['UUID']}
184 ${brg_node_type}= Catenate ${vcpe_ar_data_file.json()['brg']['node_type']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500185 ${tunnelxconn_dict}= Create Dictionary invariantUUID=${tunnelxconn_invariant_uuid} UUID=${tunnelxconn_uuid} node_type=${tunnelxconn_node_type}
186 ${brg_dict}= Create Dictionary invariantUUID=${brg_invariant_uuid} UUID=${brg_uuid} node_type=${brg_node_type}
187 ${xoffset}= Set Variable ${100}
188 ${allottedresource_uuid}= Get AllottedResource UUID
189 ${random}= Get Current Date
DR695H910097e2019-05-08 13:55:32 -0400190 :FOR ${allottedresource} IN @{allottedresource_list}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500191 \ ${loop_catalog_resource_id}= Set Variable ${allottedresource_uuid}
192 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
193 \ ${loop_catalog_resource_id}= Add ASDC Allotted Resource Catalog Resource 00000 ${allottedresource}_${random} ONAP ${loop_catalog_resource_id} ${allottedresource}
194 \ ${loop_catalog_resource_id2}= Add ASDC Resource Instance To Resource ${loop_catalog_resource_id} ${allottedresource_uuid} ${allottedresource} ${xoffset} ${0}
195 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
196 #
197 # Set the properties to relate to the brg and gmux
198 #
199 \ 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']}
200 \ 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']}
201 #
202 # Set the nf_role nf_type
203 #
204 \ Run Keyword If '${allottedresource}'=='TunnelXConn' Setup SDC Catalog Resource AllottedResource Inputs ${catalog_service_id} ${allottedresource} ${loop_catalog_resource_id}
205 \ 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 -0500206 \ ${loop_catalog_resource_id}= Certify ASDC Catalog Resource ${loop_catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
207 \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500208 \ Set To Dictionary ${catalog_resources} ${loop_catalog_resource_id}=${loop_catalog_resource_resp}
209 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
210 Checkin ASDC Catalog Service ${catalog_service_id}
211 Request Certify ASDC Catalog Service ${catalog_service_id}
212 Start Certify ASDC Catalog Service ${catalog_service_id}
213 # on certify it gets a new id
214 ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id}
215 Approve ASDC Catalog Service ${catalog_service_id}
DR695H910097e2019-05-08 13:55:32 -0400216 :FOR ${DIST_INDEX} IN RANGE 1
bdfreeman1421b2a49512018-11-25 07:32:19 -0500217 \ Log Distribution Attempt ${DIST_INDEX}
218 \ Distribute ASDC Catalog Service ${catalog_service_id}
219 \ ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
220 \ ${status} ${_} = Run Keyword And Ignore Error Loop Over Check Catalog Service Distributed ${catalog_service_resp['uuid']}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500221 \ Exit For Loop If '${status}'=='PASS'
bdfreeman1421b2a49512018-11-25 07:32:19 -0500222 Should Be Equal As Strings ${status} PASS
223 [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id} ${catalog_resources}
224
225
Yang Xu7037e542018-12-28 01:19:26 -0500226Create Allotted Resource Data File
kaihlavi06fa4ee2019-05-22 19:08:14 +0300227 [Documentation] Create Allotted Resource json data file
Yang Xu7037e542018-12-28 01:19:26 -0500228 ${allotted_resource}= Create Dictionary
229 ${allotted_csar_map}= Create Dictionary
230 Set To Dictionary ${allotted_csar_map} tunnelxconn=service-Demovcpevgmux-csar.csar
231 Set To Dictionary ${allotted_csar_map} brg=service-Demovcpevbrgemu-csar.csar
232 ${keys}= Get Dictionary Keys ${allotted_csar_map}
DR695H910097e2019-05-08 13:55:32 -0400233 :FOR ${key} IN @{keys}
Yang Xu7037e542018-12-28 01:19:26 -0500234 \ ${csar}= Get From Dictionary ${allotted_csar_map} ${key}
235 \ ${dir} ${ext}= Split String From Right ${csar} - 1
236 \ Extract Zip File /tmp/csar/${csar} /tmp/csar/${dir}
237 \ ${template}= Catenate /tmp/csar/${dir}/Definitions/${dir}-template.yml
238 \ ${json_str}= Template Yaml To Json ${template}
239 \ ${json_obj}= To Json ${json_str}
240 \ ${attrs}= Create Dictionary
241 \ Set To Dictionary ${attrs} invariantUUID=${json_obj['metadata']['invariantUUID']}
242 \ Set To Dictionary ${attrs} UUID=${json_obj['metadata']['UUID']}
243 \ Set To Dictionary ${attrs} node_type=${json_obj['topology_template']['substitution_mappings']['node_type']}
244 \ Set To Dictionary ${allotted_resource} ${key}=${attrs}
245 ${result_str}= Evaluate json.dumps(${allotted_resource}, indent=2) json
246 Log To Console ${result_str}
247 Create File /tmp/vcpe_allotted_resource_data.json ${result_str}
Yang Xu7037e542018-12-28 01:19:26 -0500248
bdfreeman14211ad11d92018-11-17 18:47:37 +0000249Download CSAR
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500250 [Documentation] Download CSAR
bdfreeman14211ad11d92018-11-17 18:47:37 +0000251 [Arguments] ${catalog_service_id} ${save_directory}=/tmp/csar
252 # get meta data
253 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/filteredDataByParams?include=toscaArtifacts ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
254 ${csar_resource_id}= Set Variable ${resp.json()['toscaArtifacts']['assettoscacsar']['uniqueId']}
255 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/artifacts/${csar_resource_id}
256 ${csar_file_name}= Set Variable ${resp.json()['artifactName']}
257 ${base64Obj}= Set Variable ${resp.json()['base64Contents']}
258 ${binObj}= Evaluate base64.b64decode("${base64Obj}") modules=base64
259 Create Binary File ${save_directory}/${csar_file_name} ${binObj}
Brian Freemane14d2572019-04-29 16:20:21 -0500260 Log To Console ${\n}Downloaded:${csar_file_name}
bdfreeman14211ad11d92018-11-17 18:47:37 +0000261
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500262
263Get Generic NeutronNet UUID
kaihlavi06fa4ee2019-05-22 19:08:14 +0300264 [Documentation] Look up the UUID of the Generic NeutronNetwork Resource
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500265 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_QUERY_PATH}/Generic%20NeutronNet/resourceVersion/1.0 ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
266 [Return] ${resp.json()['allVersions']['1.0']}
267
bdfreeman1421b2a49512018-11-25 07:32:19 -0500268Get AllottedResource UUID
kaihlavi06fa4ee2019-05-22 19:08:14 +0300269 [Documentation] Look up the UUID of the Allotted Resource
bdfreeman1421b2a49512018-11-25 07:32:19 -0500270 # if this fails then the AllottedResource template got deleted from SDC by mistake
271 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_QUERY_PATH}/AllottedResource/resourceVersion/1.0 ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
272 [Return] ${resp.json()['allVersions']['1.0']}
273
Brian Freeman18df8912018-05-25 13:27:29 -0500274Loop Over Check Catalog Service Distributed
Gary Wu58d58532018-07-27 16:02:51 -0700275 [Arguments] ${catalog_service_id}
Brian Freemanadaa2372018-10-24 12:25:22 -0500276 # SO watchdog timeout is 300 seconds need buffer
bdfreeman1421b2a49512018-11-25 07:32:19 -0500277 ${dist_status}= Set Variable CONTINUE
DR695H910097e2019-05-08 13:55:32 -0400278 :FOR ${CHECK_INDEX} IN RANGE 20
Brian Freemanadaa2372018-10-24 12:25:22 -0500279 \ ${status} ${_} = Run Keyword And Ignore Error Check Catalog Service Distributed ${catalog_service_id} ${dist_status}
Gary Wu58d58532018-07-27 16:02:51 -0700280 \ Sleep 20s
Brian Freemanf940ee92018-05-25 21:09:05 -0500281 \ Return From Keyword If '${status}'=='PASS'
bdfreeman1421b2a49512018-11-25 07:32:19 -0500282 # need a way to exit the loop early on DISTRIBUTION_COMPLETE_ERROR ${dist_status} doesnt work
283 #\ Exit For Loop If '${dist_status}'=='EXIT'
284 Should Be Equal As Strings ${status} PASS
Brian Freeman18df8912018-05-25 13:27:29 -0500285
DR695Hccff30b2017-02-17 18:44:24 -0500286Setup ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300287 [Documentation] Creates all the steps a VF needs for an ASDC Catalog Resource and returns the id
Yang Xu2ec80382018-11-01 12:30:37 -0400288 [Arguments] ${model_zip_path} ${cds}=
Brian Freemanb568e5e2018-04-05 21:03:38 -0500289 ${license_model_id} ${license_model_version_id}= Add ASDC License Model
Brian Freeman15033782019-03-22 15:48:55 -0500290
291
292 ${license_temp_date}= Get Current Date
293 ${license_start_date}= Get Current Date result_format=%m/%d/%Y
294 ${license_end_date}= Add Time To Date ${license_temp_date} 365 days result_format=%m/%d/%Y
295 ${key_group_id}= Add ASDC License Group ${license_model_id} ${license_model_version_id} ${license_start_date} ${license_end_date}
296 ${pool_id}= Add ASDC Entitlement Pool ${license_model_id} ${license_model_version_id} ${license_start_date} ${license_end_date}
297
Brian Freemanb568e5e2018-04-05 21:03:38 -0500298 ${feature_group_id}= Add ASDC Feature Group ${license_model_id} ${key_group_id} ${pool_id} ${license_model_version_id}
299 ${license_agreement_id}= Add ASDC License Agreement ${license_model_id} ${feature_group_id} ${license_model_version_id}
300 Submit ASDC License Model ${license_model_id} ${license_model_version_id}
301 ${license_model_resp}= Get ASDC License Model ${license_model_id} ${license_model_version_id}
Brian Freeman9c42ae12018-11-27 14:33:27 -0500302 ${matches}= Get Regexp Matches ${model_zip_path} temp/(.*)\.zip 1
303 ${software_product_name_prefix}= Set Variable ${matches[0]}
304 ${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 -0500305 Upload ASDC Heat Package ${software_product_id} ${model_zip_path} ${software_product_version_id}
306 Validate ASDC Software Product ${software_product_id} ${software_product_version_id}
307 Submit ASDC Software Product ${software_product_id} ${software_product_version_id}
308 Package ASDC Software Product ${software_product_id} ${software_product_version_id}
309 ${software_product_resp}= Get ASDC Software Product ${software_product_id} ${software_product_version_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500310 ${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 -0400311 # Check if need to set up CDS properties
312 Run Keyword If '${cds}' == 'vfwng' Setup ASDC Catalog Resource CDS Properties ${catalog_resource_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500313
Brian Freeman391680a2018-08-11 15:20:58 -0500314 ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500315 [Return] ${catalog_resource_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500316
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500317
318Setup SDC Catalog Resource Deployment Artifact Properties
319 [Documentation] Set up Deployment Artiface properties
320 [Arguments] ${catalog_service_id} ${catalog_parent_service_id} ${catalog_resource_unique_id} ${blueprint_file}
321 ${resp}= Get ASDC Catalog Resource Component Instances Properties ${catalog_service_id}
322 #${resp}= Get ASDC Catalog Resource Deployment Artifact Properties ${catalog_service_id}
Brian Freemana8ceb692019-03-03 09:37:54 -0500323 ${blueprint_data} OperatingSystem.Get File ${SDC_CATALOG_DEPLOYMENT_ARTIFACT_PATH}${blueprint_file}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500324 ${payloadData}= Evaluate base64.b64encode('''${blueprint_data}'''.encode('utf-8')) modules=base64
325 ${dict}= Create Dictionary artifactLabel=blueprint artifactName=${blueprint_file} artifactType=DCAE_INVENTORY_BLUEPRINT artifactGroupType=DEPLOYMENT description=${blueprint_file} payloadData=${payloadData}
326 ${data}= Fill JSON Template File ${ASDC_ARTIFACT_UPLOAD_TEMPLATE} ${dict}
327 # POST artifactUpload to resource
328 ${artifact_upload_path}= Catenate ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}/resourceInstance/${catalog_resource_unique_id}${ASDC_CATALOG_SERVICE_RESOURCE_ARTIFACT_PATH}
329 ${resp}= Run ASDC MD5 Post Request ${artifact_upload_path} ${data} ${ASDC_DESIGNER_USER_ID}
330 Should Be Equal As Strings ${resp.status_code} 200
331 [Return] ${resp}
332
333
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500334Setup SDC Catalog Resource GenericNeutronNet Properties
bdfreeman1421b2a49512018-11-25 07:32:19 -0500335 [Documentation] Set up GenericNeutronNet properties and inputs
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500336 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_parent_service_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500337 ${resp}= Get ASDC Catalog Resource Component Instances Properties ${catalog_service_id}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500338 ${componentInstances} Set Variable @{resp['componentInstancesProperties']}
339 # componentInstances can have 1 or more than 1 entry
340 ${passed}= Run Keyword And Return Status Evaluate type(${componentInstances})
341 ${type}= Run Keyword If ${passed} Evaluate type(${componentInstances})
342 ${componentInstancesList}= Run Keyword If "${type}"!="<type 'list'>" Create List ${componentInstances}
343 ... ELSE Set Variable ${componentInstances}
344 :FOR ${item} IN @{componentInstancesList}
345 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${item} ${nf_role}
346 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
347 \ ${componentInstance1}= Set Variable ${item}
348 :FOR ${comp} IN @{resp['componentInstancesProperties']["${componentInstance1}"]}
349 \ ${name} Set Variable ${comp['name']}
350 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${name} network_role
351 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
352 \ ${description} Set Variable ${comp['description']}
353 \ ${description}= Replace String ${description} ${\n} \
354 \ ${uniqueId} Set Variable ${comp['uniqueId']}
355 \ ${parentUniqueId} Set Variable ${comp['parentUniqueId']}
356 \ ${ownerId} Set Variable ${comp['ownerId']}
357 \ ${dict}= Create Dictionary parentUniqueId=${parentUniqueId} ownerId=${ownerId} uniqueId=${uniqueId} description=${description}
358 \ Run Keyword If '${name}'=='network_role' Set To Dictionary ${dict} name=${name} value=${nf_role}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500359 \ ${data}= Fill JSON Template File ${SDC_CATALOG_NET_RESOURCE_INPUT_TEMPLATE} ${dict}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500360 \ ${response}= Set ASDC Catalog Resource Component Instance Properties ${catalog_parent_service_id} ${catalog_service_id} ${data}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500361
bdfreeman1421b2a49512018-11-25 07:32:19 -0500362
363Setup SDC Catalog Resource AllottedResource Properties
364 [Documentation] Set up Allotted Resource properties and inputs
365 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_resource_id} ${invariantUUID} ${UUID} ${node_type}
366 # Set component instances properties
367 ${nf_role_lc}= Convert To Lowercase ${nf_role}
368 ${resp}= Get ASDC Catalog Resource Component Instances Properties For Resource ${catalog_resource_id}
369 ${componentInstances} Set Variable @{resp['componentInstancesProperties']}
370 # componentInstances can have 1 or more than 1 entry
371 ${passed}= Run Keyword And Return Status Evaluate type(${componentInstances})
372 ${type}= Run Keyword If ${passed} Evaluate type(${componentInstances})
373 ${componentInstancesList}= Run Keyword If "${type}"!="<type 'list'>" Create List ${componentInstances}
374 ... ELSE Set Variable ${componentInstances}
375 :FOR ${item} IN @{componentInstancesList}
376 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${item} ${nf_role_lc}
377 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
378 \ ${componentInstance1}= Set Variable ${item}
379 ${dict}= Create Dictionary
380 :FOR ${comp} IN @{resp['componentInstancesProperties']["${componentInstance1}"]}
381 \ ${name} Set Variable ${comp['name']}
382 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain Any ${name} network_role providing_service_invariant_uuid providing_service_uuid providing_service_name uniqueId
383 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
384 \ ${parentUniqueId} Set Variable ${comp['parentUniqueId']}
385 \ ${ownerId} Set Variable ${comp['ownerId']}
386 \ Set To Dictionary ${dict} parentUniqueId=${parentUniqueId} ownerId=${ownerId}
387 \ Run Keyword If '${name}'=='providing_service_invariant_uuid' Set To Dictionary ${dict} providing_service_invariant_uuid=${invariantUUID}
388 \ Run Keyword If '${name}'=='providing_service_uuid' Set To Dictionary ${dict} providing_service_uuid=${UUID}
389 \ Run Keyword If '${name}'=='providing_service_name' Set To Dictionary ${dict} providing_service_name=${node_type}
390 # Sets it for each loop but should be one
391 \ ${uniqueId} Set Variable ${comp['uniqueId']}
392 \ ${uniqueId} Fetch From Left ${uniqueId} .
393 \ Set To Dictionary ${dict} uniqueId=${uniqueId}
394 ${data}= Fill JSON Template File ${SDC_CATALOG_ALLOTTED_RESOURCE_PROPERTIES_TEMPLATE} ${dict}
395 ${response}= Set ASDC Catalog Resource Component Instance Properties For Resource ${catalog_resource_id} ${componentInstance1} ${data}
396 Log To Console resp=${response}
397
398
399Setup SDC Catalog Resource AllottedResource Inputs
400 [Documentation] Set up Allotted Resource inputs
401 [Arguments] ${catalog_service_id} ${nf_role} ${catalog_resource_id}
402 # Set vnf inputs
403 ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id}
404 ${dict}= Create Dictionary
DR695H910097e2019-05-08 13:55:32 -0400405 :FOR ${comp} IN @{resp['inputs']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500406 \ ${name} Set Variable ${comp['name']}
407 \ ${uid} Set Variable ${comp['uniqueId']}
408 \ Run Keyword If '${name}'=='nf_type' Set To Dictionary ${dict} nf_type=${nf_role} nf_type_uid=${uid}
409 \ Run Keyword If '${name}'=='nf_role' Set To Dictionary ${dict} nf_role=${nf_role} nf_role_uid=${uid}
410 ${data}= Fill JSON Template File ${SDC_CATALOG_ALLOTTED_RESOURCE_INPUTS_TEMPLATE} ${dict}
411 ${response}= Set ASDC Catalog Resource VNF Inputs ${catalog_resource_id} ${data}
412 [Return] ${response}
413
Yang Xu2ec80382018-11-01 12:30:37 -0400414Setup ASDC Catalog Resource CDS Properties
415 [Documentation] Set up vfwng VNF properties and inputs for CDS
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500416 [Arguments] ${catalog_resource_id}
Yang Xu2ec80382018-11-01 12:30:37 -0400417 # Set vnf module properties
418 ${resp}= Get ASDC Catalog Resource Component Instances ${catalog_resource_id}
DR695H910097e2019-05-08 13:55:32 -0400419 :FOR ${comp} IN @{resp['componentInstances']}
Yang Xu2ec80382018-11-01 12:30:37 -0400420 \ ${name} Set Variable ${comp['name']}
421 \ ${uniqueId} Set Variable ${comp['uniqueId']}
422 \ ${actualComponentUid} Set Variable ${comp['actualComponentUid']}
423 \ ${test} ${v}= Run Keyword and Ignore Error Should Contain ${name} abstract_
424 \ Run Keyword If '${test}' == 'FAIL' Continue For Loop
425 \ ${response}= Get ASDC Catalog Resource Component Instance Properties ${catalog_resource_id} ${uniqueId} ${actualComponentUid}
426 \ ${dict}= Create Dictionary parent_id=${response[6]['parentUniqueId']}
427 \ Run Keyword If '${name}'=='abstract_vfw' Set To Dictionary ${dict} nfc_function=vfw nfc_naming_policy=SDNC_Policy.ONAP_VFW_NAMING_TIMESTAMP
428 \ Run Keyword If '${name}'=='abstract_vpg' Set To Dictionary ${dict} nfc_function=vpg nfc_naming_policy=SDNC_Policy.ONAP_VPG_NAMING_TIMESTAMP
429 \ 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 -0500430 \ ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_VNF_PROPERTIES_TEMPLATE} ${dict}
431 \ ${response}= Set ASDC Catalog Resource Component Instance Properties ${catalog_resource_id} ${uniqueId} ${data}
Yang Xu2ec80382018-11-01 12:30:37 -0400432 \ Log To Console resp=${response}
433
434 # Set vnf inputs
435 ${resp}= Get ASDC Catalog Resource Inputs ${catalog_resource_id}
436 ${dict}= Create Dictionary
DR695H910097e2019-05-08 13:55:32 -0400437 :FOR ${comp} IN @{resp['inputs']}
Yang Xu2ec80382018-11-01 12:30:37 -0400438 \ ${name} Set Variable ${comp['name']}
439 \ ${uid} Set Variable ${comp['uniqueId']}
440 \ Run Keyword If '${name}'=='nf_function' Set To Dictionary ${dict} nf_function=ONAP-FIREWALL nf_function_uid=${uid}
441 \ Run Keyword If '${name}'=='nf_type' Set To Dictionary ${dict} nf_type=FIREWALL nf_type_uid=${uid}
442 \ Run Keyword If '${name}'=='nf_naming_code' Set To Dictionary ${dict} nf_naming_code=vfw nf_naming_code_uid=${uid}
443 \ Run Keyword If '${name}'=='nf_role' Set To Dictionary ${dict} nf_role=vFW nf_role_uid=${uid}
444 \ Run Keyword If '${name}'=='cloud_env' Set To Dictionary ${dict} cloud_env=openstack cloud_env_uid=${uid}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500445 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_VNF_INPUTS_TEMPLATE} ${dict}
Yang Xu2ec80382018-11-01 12:30:37 -0400446 ${response}= Set ASDC Catalog Resource VNF Inputs ${catalog_resource_id} ${data}
447
DR695Hccff30b2017-02-17 18:44:24 -0500448Add ASDC License Model
kaihlavi06fa4ee2019-05-22 19:08:14 +0300449 [Documentation] Creates an ASDC License Model and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400450 ${uuid}= Generate UUID
451 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500452 ${map}= Create Dictionary vendor_name=${shortened_uuid}
453 ${data}= Fill JSON Template File ${ASDC_LICENSE_MODEL_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500454 ${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 -0500455 Should Be Equal As Strings ${resp.status_code} 200
Brian Freemanb568e5e2018-04-05 21:03:38 -0500456 [Return] ${resp.json()['itemId']} ${resp.json()['version']['id']}
DR695Hccff30b2017-02-17 18:44:24 -0500457Get ASDC License Model
458 [Documentation] gets an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400459 [Arguments] ${id} ${version_id}=0.1
Brian Freeman44b8bb32018-05-03 21:08:42 -0500460 ${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 -0400461 [Return] ${resp.json()}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500462
kaihlavi06fa4ee2019-05-22 19:08:14 +0300463Get ASDC License Models
464 [Documentation] Gets all ASDC License Models
465 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500466 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300467
DR695Hccff30b2017-02-17 18:44:24 -0500468Checkin ASDC License Model
kaihlavi06fa4ee2019-05-22 19:08:14 +0300469 [Documentation] Checks in 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()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300476
DR695Hccff30b2017-02-17 18:44:24 -0500477Submit ASDC License Model
kaihlavi06fa4ee2019-05-22 19:08:14 +0300478 [Documentation] Submits an ASDC License Model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400479 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500480 ${map}= Create Dictionary action=Submit
481 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500482 ${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 -0500483 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500484 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300485
DR695Hccff30b2017-02-17 18:44:24 -0500486Checkin ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300487 [Documentation] Checks in an ASDC Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400488 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500489 ${map}= Create Dictionary action=Checkin
Jerry Floode2a48d72017-06-21 15:06:29 -0400490 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500491 ${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 -0500492 Should Be Equal As Strings ${resp.status_code} 200
Jerry Floode2a48d72017-06-21 15:06:29 -0400493 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300494
Jerry Floode2a48d72017-06-21 15:06:29 -0400495Validate ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300496 [Documentation] Validates an ASDC Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400497 [Arguments] ${id} ${version_id}=0.1
498 ${data}= Catenate
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500499 ${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}
500 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500501 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300502
DR695Hccff30b2017-02-17 18:44:24 -0500503Submit ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300504 [Documentation] Submits an ASDC Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400505 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500506 ${map}= Create Dictionary action=Submit
Jerry Floode2a48d72017-06-21 15:06:29 -0400507 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500508 ${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}
509 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500510 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300511
DR695Hccff30b2017-02-17 18:44:24 -0500512Package ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300513 [Documentation] Creates a package of an ASDC Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400514 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500515 ${map}= Create Dictionary action=Create_Package
Jerry Floode2a48d72017-06-21 15:06:29 -0400516 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500517 ${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}
518 Should Be Equal As Strings ${resp.status_code} 200
Jerry Floode2a48d72017-06-21 15:06:29 -0400519 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300520
DR695Hccff30b2017-02-17 18:44:24 -0500521Add ASDC Entitlement Pool
kaihlavi06fa4ee2019-05-22 19:08:14 +0300522 [Documentation] Creates an ASDC Entitlement Pool and returns its id
Brian Freeman15033782019-03-22 15:48:55 -0500523 [Arguments] ${license_model_id} ${version_id}=0.1 ${license_start_date}="01/01/1960" ${license_end_date}="01/01/1961"
Jerry Floode2a48d72017-06-21 15:06:29 -0400524 ${uuid}= Generate UUID
525 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Brian Freeman15033782019-03-22 15:48:55 -0500526 ${map}= Create Dictionary entitlement_pool_name=${shortened_uuid} license_start_date=${license_start_date} license_end_date=${license_end_date}
Jerry Floode2a48d72017-06-21 15:06:29 -0400527 ${data}= Fill JSON Template File ${ASDC_ENTITLEMENT_POOL_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500528 ${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}
529 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500530 [Return] ${resp.json()['value']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300531
DR695Hccff30b2017-02-17 18:44:24 -0500532Get ASDC Entitlement Pool
kaihlavi06fa4ee2019-05-22 19:08:14 +0300533 [Documentation] Gets an ASDC Entitlement Pool by its id
DR695Hccff30b2017-02-17 18:44:24 -0500534 [Arguments] ${license_model_id} ${pool_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500535 ${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 -0500536 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300537
DR695Hccff30b2017-02-17 18:44:24 -0500538Add ASDC License Group
kaihlavi06fa4ee2019-05-22 19:08:14 +0300539 [Documentation] Creates an ASDC License Group and returns its id
Brian Freeman15033782019-03-22 15:48:55 -0500540 [Arguments] ${license_model_id} ${version_id}=1.0 ${license_start_date}="01/01/1960" ${license_end_date}="01/01/1961"
Jerry Floode2a48d72017-06-21 15:06:29 -0400541 ${uuid}= Generate UUID
542 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Brian Freeman15033782019-03-22 15:48:55 -0500543 ${map}= Create Dictionary key_group_name=${shortened_uuid} license_start_date=${license_start_date} license_end_date=${license_end_date}
Jerry Floode2a48d72017-06-21 15:06:29 -0400544 ${data}= Fill JSON Template File ${ASDC_KEY_GROUP_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500545 ${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}
546 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500547 [Return] ${resp.json()['value']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300548
DR695Hccff30b2017-02-17 18:44:24 -0500549Get ASDC License Group
kaihlavi06fa4ee2019-05-22 19:08:14 +0300550 [Documentation] Gets an ASDC License Group by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400551 [Arguments] ${license_model_id} ${group_id} ${version_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500552 ${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 -0500553 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300554
DR695Hccff30b2017-02-17 18:44:24 -0500555Add ASDC Feature Group
kaihlavi06fa4ee2019-05-22 19:08:14 +0300556 [Documentation] Creates an ASDC Feature Group and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400557 [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} ${version_id}=0.1
558 ${uuid}= Generate UUID
559 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Jerry Flood80ff9852017-08-11 06:47:14 -0400560 ${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 -0400561 ${data}= Fill JSON Template File ${ASDC_FEATURE_GROUP_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500562 ${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}
563 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500564 [Return] ${resp.json()['value']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300565
DR695Hccff30b2017-02-17 18:44:24 -0500566Get ASDC Feature Group
kaihlavi06fa4ee2019-05-22 19:08:14 +0300567 [Documentation] Gets an ASDC Feature Group by its id
DR695Hccff30b2017-02-17 18:44:24 -0500568 [Arguments] ${license_model_id} ${group_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500569 ${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 -0500570 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300571
DR695Hccff30b2017-02-17 18:44:24 -0500572Add ASDC License Agreement
kaihlavi06fa4ee2019-05-22 19:08:14 +0300573 [Documentation] Creates an ASDC License Agreement and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400574 [Arguments] ${license_model_id} ${feature_group_id} ${version_id}=0.1
575 ${uuid}= Generate UUID
576 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500577 ${map}= Create Dictionary license_agreement_name=${shortened_uuid} feature_group_id=${feature_group_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400578 ${data}= Fill JSON Template File ${ASDC_LICENSE_AGREEMENT_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500579 ${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}
580 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500581 [Return] ${resp.json()['value']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300582
DR695Hccff30b2017-02-17 18:44:24 -0500583Get ASDC License Agreement
kaihlavi06fa4ee2019-05-22 19:08:14 +0300584 [Documentation] Gets an ASDC License Agreement by its id
DR695Hccff30b2017-02-17 18:44:24 -0500585 [Arguments] ${license_model_id} ${agreement_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500586 ${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 -0500587 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300588
DR695Hccff30b2017-02-17 18:44:24 -0500589Add ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300590 [Documentation] Creates an ASDC Software Product and returns its id
Brian Freeman9c42ae12018-11-27 14:33:27 -0500591 [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 -0400592 ${uuid}= Generate UUID
Brian Freeman9c42ae12018-11-27 14:33:27 -0500593 ${shortened_uuid}= Evaluate str("${uuid}")[:13]
594 ${software_product_name}= Catenate ${name_prefix} ${shortened_uuid}
595 ${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 -0400596 ${data}= Fill JSON Template File ${ASDC_SOFTWARE_PRODUCT_TEMPLATE} ${map}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500597 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ONBOARD_ENDPOINT}
598 Should Be Equal As Strings ${resp.status_code} 200
Brian Freemanb568e5e2018-04-05 21:03:38 -0500599 [Return] ${resp.json()['itemId']} ${resp.json()['version']['id']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300600
DR695Hccff30b2017-02-17 18:44:24 -0500601Get ASDC Software Product
kaihlavi06fa4ee2019-05-22 19:08:14 +0300602 [Documentation] Gets an ASDC Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400603 [Arguments] ${software_product_id} ${version_id}=0.1
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500604 ${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 -0500605 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500606
DR695Hccff30b2017-02-17 18:44:24 -0500607Add ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300608 [Documentation] Creates an ASDC Catalog Resource and returns its id
DR695Hccff30b2017-02-17 18:44:24 -0500609 [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id}
610 ${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 -0400611 ${data}= Fill JSON Template File ${ASDC_CATALOG_RESOURCE_TEMPLATE} ${map}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500612 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500613 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500614 [Return] ${resp.json()['uniqueId']}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500615
616Add ASDC Allotted Resource Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300617 [Documentation] Creates an ASDC Allotted Resource Catalog Resource and returns its id
bdfreeman1421b2a49512018-11-25 07:32:19 -0500618 [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id} ${subcategory}
619 ${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}
620 ${data}= Fill JSON Template File ${ASDC_ALLOTTED_RESOURCE_CATALOG_RESOURCE_TEMPLATE} ${map}
621 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500622 Should Be Equal As Strings ${resp.status_code} 201
bdfreeman1421b2a49512018-11-25 07:32:19 -0500623 [Return] ${resp.json()['uniqueId']}
624
DR695Hccff30b2017-02-17 18:44:24 -0500625Mark ASDC Catalog Resource Inactive
kaihlavi06fa4ee2019-05-22 19:08:14 +0300626 [Documentation] Marks ASDC Catalog Resource as inactive
DR695Hccff30b2017-02-17 18:44:24 -0500627 [Arguments] ${catalog_resource_id}
628 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500629 Should Be Equal As Strings ${resp.status_code} 204
DR695Hccff30b2017-02-17 18:44:24 -0500630 [Return] ${resp}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300631
DR695Hccff30b2017-02-17 18:44:24 -0500632Delete Inactive ASDC Catalog Resources
kaihlavi06fa4ee2019-05-22 19:08:14 +0300633 [Documentation] Delete all ASDC Catalog Resources that are inactive
DR695Hccff30b2017-02-17 18:44:24 -0500634 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500635 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500636 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300637
DR695Hccff30b2017-02-17 18:44:24 -0500638Get ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300639 [Documentation] Gets an ASDC Catalog Resource by its id
DR695Hccff30b2017-02-17 18:44:24 -0500640 [Arguments] ${catalog_resource_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500641 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500642 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500643
Yang Xu2ec80382018-11-01 12:30:37 -0400644Get ASDC Catalog Resource Component Instances
kaihlavi06fa4ee2019-05-22 19:08:14 +0300645 [Documentation] Gets component instances of an ASDC Catalog Resource by its id
Yang Xu2ec80382018-11-01 12:30:37 -0400646 [Arguments] ${catalog_resource_id}
647 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstances ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
648 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500649
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500650Get ASDC Catalog Resource Deployment Artifact Properties
kaihlavi06fa4ee2019-05-22 19:08:14 +0300651 [Documentation] Gets deployment artifact properties of an ASDC Catalog Resource by its id
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500652 [Arguments] ${catalog_resource_id}
653 #${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstances ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
654 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=deploymentArtifacts ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
655 [Return] ${resp.json()}
656
657
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500658Get ASDC Catalog Resource Component Instances Properties
kaihlavi06fa4ee2019-05-22 19:08:14 +0300659 [Documentation] Gets ASDC Catalog Resource component instances properties by its id
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500660 [Arguments] ${catalog_resource_id}
661 #${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
662 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_BE_ENDPOINT}
663 [Return] ${resp.json()}
664
bdfreeman1421b2a49512018-11-25 07:32:19 -0500665Get ASDC Catalog Resource Component Instances Properties For Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300666 [Documentation] Gets ASDC Catalog Resource component instances properties for a Resource (VF) by its id
bdfreeman1421b2a49512018-11-25 07:32:19 -0500667 [Arguments] ${catalog_resource_id}
668 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=componentInstancesProperties ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
669 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500670
Yang Xu2ec80382018-11-01 12:30:37 -0400671Get ASDC Catalog Resource Inputs
kaihlavi06fa4ee2019-05-22 19:08:14 +0300672 [Documentation] Gets ASDC Catalog Resource inputs by its id
Yang Xu2ec80382018-11-01 12:30:37 -0400673 [Arguments] ${catalog_resource_id}
674 ${resp}= Run ASDC Get Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/filteredDataByParams?include=inputs ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
675 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500676
Yang Xu2ec80382018-11-01 12:30:37 -0400677Get ASDC Catalog Resource Component Instance Properties
kaihlavi06fa4ee2019-05-22 19:08:14 +0300678 [Documentation] Gets component instance properties of an ASDC Catalog Resource by their ids
Yang Xu2ec80382018-11-01 12:30:37 -0400679 [Arguments] ${catalog_resource_id} ${component_instance_id} ${component_id}
680 ${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}
681 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500682
Yang Xu2ec80382018-11-01 12:30:37 -0400683Set ASDC Catalog Resource Component Instance Properties
kaihlavi06fa4ee2019-05-22 19:08:14 +0300684 [Documentation] Sets ASDC Catalog Resource component instance properties by ids
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500685 [Arguments] ${catalog_resource_id} ${component_parent_service_id} ${data}
686 #${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}
687 ${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 -0500688 [Return] ${resp.json()}
689
690Set ASDC Catalog Resource Component Instance Properties For Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300691 [Documentation] Sets ASDC Resource component instance properties by ids
bdfreeman1421b2a49512018-11-25 07:32:19 -0500692 [Arguments] ${catalog_parent_resource_id} ${catalog_resource_id} ${data}
693 #${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}
694 ${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}
695 [Return] ${resp.json()}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500696
Yang Xu74cfb862018-12-06 21:57:32 -0500697Set CDS Catalog Resource Component Instance Properties
kaihlavi06fa4ee2019-05-22 19:08:14 +0300698 [Documentation] Sets CDS Catalog Resource component instance properties by ids
Yang Xu74cfb862018-12-06 21:57:32 -0500699 [Arguments] ${catalog_resource_id} ${component_instance_id} ${data}
700 ${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}
701 [Return] ${resp.json()}
702
Yang Xu2ec80382018-11-01 12:30:37 -0400703Set ASDC Catalog Resource VNF Inputs
kaihlavi06fa4ee2019-05-22 19:08:14 +0300704 [Documentation] Sets VNF Inputs for an ASDC Catalog Resource by its id
Yang Xu2ec80382018-11-01 12:30:37 -0400705 [Arguments] ${catalog_resource_id} ${data}
706 ${resp}= Run ASDC Post Request ${ASDC_FE_CATALOG_RESOURCES_PATH}/${catalog_resource_id}/update/inputs ${data} ${ASDC_DESIGNER_USER_ID} ${ASDC_FE_ENDPOINT}
707 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300708
Brian Freeman79b00ce2018-11-01 14:57:53 -0500709Get SDC Demo Vnf Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300710 [Documentation] Gets Resource ids of demonstration VNFs for instantiation
Brian Freeman79b00ce2018-11-01 14:57:53 -0500711 [Arguments] ${service_name}
712 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/serviceName/${service_name}/serviceVersion/1.0
713 @{ITEMS}= Copy List ${resp.json()['componentInstances']}
714 ${demo_catalog_resource}= Create Dictionary
715 :FOR ${ELEMENT} IN @{ITEMS}
716 \ Log ${ELEMENT['name']}
717 \ Log ${ELEMENT['groupInstances'][0]['groupName']}
718 \ ${vnf}= Get VNF From Group Name ${ELEMENT['groupInstances'][0]['groupName']} ${service_name}
719 \ ${vnf_data}= Create Dictionary vnf_type=${ELEMENT['name']} vf_module=${ELEMENT['groupInstances'][0]['groupName']}
720 \ LOG ${vnf_data}
721 \ Set To Dictionary ${demo_catalog_resource} ${vnf}=${vnf_data}
722 \ LOG ${demo_catalog_resource}
723 [Return] ${demo_catalog_resource}
724
725Get VNF From Group Name
kaihlavi06fa4ee2019-05-22 19:08:14 +0300726 [Documentation] Looks up VNF key from service mapping for a regex on group_name and service_name
Brian Freeman79b00ce2018-11-01 14:57:53 -0500727 [Arguments] ${group_name} ${service_name}
728 ${vnf}= Set Variable If
Brian Freeman4c71b0b2019-04-26 08:08:56 -0500729 ... ('${service_name}'=='demoVFWCL') and ('base_vfw' in '${group_name}') vFWCLvFWSNK
730 ... ('${service_name}'=='demoVFWCL') and ('base_vpkg' in '${group_name}') vFWCLvPKG
Brian Freeman79b00ce2018-11-01 14:57:53 -0500731 ... ('${service_name}'=='demoVLB') and ('base_vlb' in '${group_name}') vLB
732 [Return] ${vnf}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300733
DR695Hccff30b2017-02-17 18:44:24 -0500734Checkin ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300735 [Documentation] Checks in an ASDC Catalog Resource by its id
DR695Hccff30b2017-02-17 18:44:24 -0500736 [Arguments] ${catalog_resource_id}
737 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400738 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500739 ${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 -0500740 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500741 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300742
DR695Hccff30b2017-02-17 18:44:24 -0500743Request Certify ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300744 [Documentation] Requests certification of an ASDC Catalog Resource by its id
DR695Hccff30b2017-02-17 18:44:24 -0500745 [Arguments] ${catalog_resource_id}
746 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400747 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500748 ${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 -0500749 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500750 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300751
DR695Hccff30b2017-02-17 18:44:24 -0500752Start Certify ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300753 [Documentation] Start certification of an ASDC Catalog Resource by its id
DR695Hccff30b2017-02-17 18:44:24 -0500754 [Arguments] ${catalog_resource_id}
755 ${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 -0500756 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500757 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300758
DR695Hccff30b2017-02-17 18:44:24 -0500759Certify ASDC Catalog Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300760 [Documentation] Certifies an ASDC Catalog Resource by its id and returns the new id
Brian Freemandb1e7412018-08-01 12:46:01 -0500761 [Arguments] ${catalog_resource_id} ${user_id}=${ASDC_TESTER_USER_ID}
DR695Hccff30b2017-02-17 18:44:24 -0500762 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400763 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
Brian Freemandb1e7412018-08-01 12:46:01 -0500764 ${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 -0500765 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500766 [Return] ${resp.json()['uniqueId']}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400767
DR695Hccff30b2017-02-17 18:44:24 -0500768Upload ASDC Heat Package
kaihlavi06fa4ee2019-05-22 19:08:14 +0300769 [Documentation] Creates an ASDC Software Product and returns its id
Brian Freemanf508ab22018-03-15 21:19:41 -0500770 [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400771 ${files}= Create Dictionary
772 Create Multi Part ${files} upload ${file_path} contentType=application/zip
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500773 ${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}
774 Should Be Equal As Strings ${resp.status_code} 200
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400775
DR695Hccff30b2017-02-17 18:44:24 -0500776Add ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300777 [Documentation] Creates an ASDC Catalog Service and returns its id
jf986075010a42017-02-22 16:52:54 -0500778 [Arguments] ${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400779 ${uuid}= Generate UUID
jf986075010a42017-02-22 16:52:54 -0500780 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Jerry Floode2a48d72017-06-21 15:06:29 -0400781 ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name}
jf986075010a42017-02-22 16:52:54 -0500782 ${map}= Create Dictionary service_name=${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400783 ${data}= Fill JSON Template File ${ASDC_CATALOG_SERVICE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500784 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500785 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500786 [Return] ${resp.json()['uniqueId']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300787
DR695Hccff30b2017-02-17 18:44:24 -0500788Mark ASDC Catalog Service Inactive
kaihlavi06fa4ee2019-05-22 19:08:14 +0300789 [Documentation] Deletes an ASDC Catalog Service
DR695Hccff30b2017-02-17 18:44:24 -0500790 [Arguments] ${catalog_service_id}
791 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500792 Should Be Equal As Strings ${resp.status_code} 204
DR695Hccff30b2017-02-17 18:44:24 -0500793 [Return] ${resp}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300794
DR695Hccff30b2017-02-17 18:44:24 -0500795Delete Inactive ASDC Catalog Services
kaihlavi06fa4ee2019-05-22 19:08:14 +0300796 [Documentation] Delete all ASDC Catalog Services that are inactive
DR695Hccff30b2017-02-17 18:44:24 -0500797 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_SERVICES_PATH} ${ASDC_DESIGNER_USER_ID}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500798 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500799 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300800
DR695Hccff30b2017-02-17 18:44:24 -0500801Get ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300802 [Documentation] Gets an ASDC Catalog Service by its id
DR695Hccff30b2017-02-17 18:44:24 -0500803 [Arguments] ${catalog_service_id}
804 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
805 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300806
DR695Hccff30b2017-02-17 18:44:24 -0500807Checkin ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300808 [Documentation] Checks in an ASDC Catalog Service by its id
DR695Hccff30b2017-02-17 18:44:24 -0500809 [Arguments] ${catalog_service_id}
810 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400811 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500812 ${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 -0500813 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500814 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300815
DR695Hccff30b2017-02-17 18:44:24 -0500816Request Certify ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300817 [Documentation] Requests certification of an ASDC Catalog Service by its id
DR695Hccff30b2017-02-17 18:44:24 -0500818 [Arguments] ${catalog_service_id}
819 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400820 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500821 ${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 -0500822 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500823 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300824
DR695Hccff30b2017-02-17 18:44:24 -0500825Start Certify ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300826 [Documentation] Start certification of an ASDC Catalog Service by its id
DR695Hccff30b2017-02-17 18:44:24 -0500827 [Arguments] ${catalog_service_id}
828 ${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 -0500829 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500830 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300831
DR695Hccff30b2017-02-17 18:44:24 -0500832Certify ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300833 [Documentation] Certifies an ASDC Catalog Service by its id and returns the new id
DR695Hccff30b2017-02-17 18:44:24 -0500834 [Arguments] ${catalog_service_id}
835 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400836 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500837 ${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 -0500838 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500839 [Return] ${resp.json()['uniqueId']}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300840
DR695Hccff30b2017-02-17 18:44:24 -0500841Approve ASDC Catalog Service
kaihlavi06fa4ee2019-05-22 19:08:14 +0300842 [Documentation] Approves an ASDC Catalog Service by its id
DR695Hccff30b2017-02-17 18:44:24 -0500843 [Arguments] ${catalog_service_id}
844 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400845 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500846 ${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 -0500847 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500848 [Return] ${resp.json()}
849Distribute ASDC Catalog Service
850 [Documentation] distribute an asdc Catalog Service by its id
851 [Arguments] ${catalog_service_id}
852 ${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 -0500853 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500854 [Return] ${resp.json()}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500855
DR695Hccff30b2017-02-17 18:44:24 -0500856Add ASDC Resource Instance
kaihlavi06fa4ee2019-05-22 19:08:14 +0300857 [Documentation] Creates an ASDC Resource Instance and returns its id
Yang Xufac7a632019-05-17 01:01:26 -0400858 [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name} ${xoffset}=${0} ${yoffset}=${0} ${resourceType}=VF
DR695Hccff30b2017-02-17 18:44:24 -0500859 ${milli_timestamp}= Generate MilliTimestamp UUID
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500860 ${xoffset}= Set Variable ${xoffset+306}
861 ${yoffset}= Set Variable ${yoffset+248}
Yang Xufac7a632019-05-17 01:01:26 -0400862 ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} posX=${xoffset} posY=${yoffset} originType=${resourceType}
Jerry Floode2a48d72017-06-21 15:06:29 -0400863 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500864 ${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 -0500865 Should Be Equal As Strings ${resp.status_code} 201
DR695Hccff30b2017-02-17 18:44:24 -0500866 [Return] ${resp.json()['uniqueId']}
Brian Freemaneef7c6f2018-11-16 18:42:21 -0500867
bdfreeman1421b2a49512018-11-25 07:32:19 -0500868Add ASDC Resource Instance To Resource
kaihlavi06fa4ee2019-05-22 19:08:14 +0300869 [Documentation] Creates an ASDC Resource Instance in a Resource (VF) and returns its id
Yang Xufac7a632019-05-17 01:01:26 -0400870 [Arguments] ${parent_catalog_resource_id} ${catalog_resource_id} ${catalog_resource_name} ${xoffset}=${0} ${yoffset}=${0} ${resourceType}=VF
bdfreeman1421b2a49512018-11-25 07:32:19 -0500871 ${milli_timestamp}= Generate MilliTimestamp UUID
872 ${xoffset}= Set Variable ${xoffset+306}
873 ${yoffset}= Set Variable ${yoffset+248}
Yang Xufac7a632019-05-17 01:01:26 -0400874 ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp} posX=${xoffset} posY=${yoffset} originType=${resourceType}
bdfreeman1421b2a49512018-11-25 07:32:19 -0500875 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
876 ${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 -0500877 Should Be Equal As Strings ${resp.status_code} 201
bdfreeman1421b2a49512018-11-25 07:32:19 -0500878 [Return] ${resp.json()['uniqueId']}
879
DR695Hccff30b2017-02-17 18:44:24 -0500880Get Catalog Service Distribution
kaihlavi06fa4ee2019-05-22 19:08:14 +0300881 [Documentation] Gets an ASDC Catalog Service distribution
DR695Hccff30b2017-02-17 18:44:24 -0500882 [Arguments] ${catalog_service_uuid}
883 ${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 -0500884 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500885 [Return] ${resp.json()}
kaihlavi06fa4ee2019-05-22 19:08:14 +0300886
DR695Hccff30b2017-02-17 18:44:24 -0500887Check Catalog Service Distributed
kaihlavi06fa4ee2019-05-22 19:08:14 +0300888 [Documentation] Checks if an ASDC Catalog Service is distributed
Brian Freemanadaa2372018-10-24 12:25:22 -0500889 [Arguments] ${catalog_service_uuid} ${dist_status}
DR695Hccff30b2017-02-17 18:44:24 -0500890 ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500891 Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed
DR695Hccff30b2017-02-17 18:44:24 -0500892 ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']}
893 @{ITEMS}= Copy List ${det_resp['distributionStatusList']}
Brian Freemanf508ab22018-03-15 21:19:41 -0500894 Should Not Be Empty ${ITEMS}
Brian Freemana62644f2018-05-13 12:47:38 -0500895 ${SO_COMPLETE} Set Variable FALSE
bdfreeman1421b2a49512018-11-25 07:32:19 -0500896 ${dist_status} Set Variable CONTINUE
897 Should Not Be Empty ${ITEMS}
DR695Hccff30b2017-02-17 18:44:24 -0500898 :FOR ${ELEMENT} IN @{ITEMS}
Brian Freemanf508ab22018-03-15 21:19:41 -0500899 \ Log ${ELEMENT['omfComponentID']}
DR695Hccff30b2017-02-17 18:44:24 -0500900 \ Log ${ELEMENT['status']}
Brian Freeman41ab5e52018-08-08 14:24:23 -0500901 \ ${SO_COMPLETE} Set Variable If (('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_OK')) or ('${SO_COMPLETE}'=='TRUE') TRUE
Brian Freemaneca71072018-08-16 14:50:16 -0500902 \ Exit For Loop If ('${SO_COMPLETE}'=='TRUE')
903 \ Exit For Loop If ('${ELEMENT['status']}' == 'DISTRIBUTION_COMPLETE_ERROR')
Brian Freemanadaa2372018-10-24 12:25:22 -0500904 \ ${dist_status}= Set Variable If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml')) EXIT
905 \ Exit For Loop If (('${ELEMENT['status']}' == 'COMPONENT_DONE_ERROR') and ('${ELEMENT['omfComponentID']}' == 'aai-ml'))
Brian Freemana62644f2018-05-13 12:47:38 -0500906 Should Be True ( '${SO_COMPLETE}'=='TRUE') SO Test
bdfreeman1421b2a49512018-11-25 07:32:19 -0500907
DR695Hccff30b2017-02-17 18:44:24 -0500908Get Catalog Service Distribution Details
kaihlavi06fa4ee2019-05-22 19:08:14 +0300909 [Documentation] Gets ASDC Catalog Service distribution details
DR695Hccff30b2017-02-17 18:44:24 -0500910 [Arguments] ${catalog_service_distribution_id}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500911 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH}/${catalog_service_distribution_id} ${ASDC_OPS_USER_ID}
912 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500913 [Return] ${resp.json()}
914Run ASDC Health Check
915 [Documentation] Runs a ASDC health check
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500916 ${session}= Create Session asdc ${ASDC_FE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500917 ${uuid}= Generate UUID
918 ${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 -0500919 ${resp}= Get Request asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers}
Brian Freemanadaa2372018-10-24 12:25:22 -0500920 # only test for HTTP 200 to determine SDC Health. SDC_DE_HEALTH is informational
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500921 Should Be Equal As Strings ${resp.status_code} 200 SDC DOWN
Brian Freeman5cf5fa62018-04-23 20:28:16 -0500922 ${SDC_DE_HEALTH}= Catenate DOWN
DR695Hccff30b2017-02-17 18:44:24 -0500923 @{ITEMS}= Copy List ${resp.json()['componentsInfo']}
924 :FOR ${ELEMENT} IN @{ITEMS}
925 \ Log ${ELEMENT['healthCheckStatus']}
Brian Freemane546f7e2018-04-19 12:17:56 -0500926 \ ${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 -0500927 Log To Console (DMaaP:${SDC_DE_HEALTH}) no_newline=true
DR695Hccff30b2017-02-17 18:44:24 -0500928Run ASDC Get Request
929 [Documentation] Runs an ASDC get request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500930 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500931 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500932 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500933 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500934 ${uuid}= Generate UUID
935 ${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 -0500936 ${resp}= Get Request asdc ${data_path} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500937 Log Received response from asdc ${resp.text}
938 [Return] ${resp}
939Run ASDC Put Request
940 [Documentation] Runs an ASDC put request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500941 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500942 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500943 Log Creating session ${MY_ASDC_BE_ENDPOINT}
944 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500945 ${uuid}= Generate UUID
946 ${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 -0500947 ${resp}= Put Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500948 Log Received response from asdc ${resp.text}
949 [Return] ${resp}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400950
DR695Hccff30b2017-02-17 18:44:24 -0500951Run ASDC Post Files Request
952 [Documentation] Runs an ASDC post request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500953 [Arguments] ${data_path} ${files} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500954 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500955 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500956 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500957 ${uuid}= Generate UUID
958 ${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 -0500959 ${resp}= Post Request asdc ${data_path} files=${files} headers=${headers}
960 Log Received response from asdc ${resp.text}
961 [Return] ${resp}
962
963Run ASDC MD5 Post Request
964 [Documentation] Runs an ASDC post request with MD5 Checksum header
965 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
966 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
967 Log Creating session ${MY_ASDC_BE_ENDPOINT}
968 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
969 ${uuid}= Generate UUID
970 ${data_string}= Evaluate json.dumps(${data}) json
971 ${md5checksum}= Evaluate md5.new('''${data_string}''').hexdigest() modules=md5
972 ${base64md5checksum}= Evaluate base64.b64encode("${md5checksum}") modules=base64
973 ${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}
974 ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500975 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400976 [Return] ${resp}
Jerry Flood6bd1afa2017-10-09 09:59:23 -0400977
DR695Hccff30b2017-02-17 18:44:24 -0500978Run ASDC Post Request
979 [Documentation] Runs an ASDC post request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500980 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500981 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500982 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500983 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500984 ${uuid}= Generate UUID
985 ${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 -0500986 ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500987 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400988 [Return] ${resp}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500989
DR695Hccff30b2017-02-17 18:44:24 -0500990Run ASDC Delete Request
991 [Documentation] Runs an ASDC delete request
Brian Freeman44b8bb32018-05-03 21:08:42 -0500992 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID} ${MY_ASDC_BE_ENDPOINT}=${ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500993 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
Brian Freeman44b8bb32018-05-03 21:08:42 -0500994 Log Creating session ${MY_ASDC_BE_ENDPOINT}
Brian Freeman2e1d0ff2019-01-23 09:38:13 -0500995 ${session}= Create Session asdc ${MY_ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500996 ${uuid}= Generate UUID
997 ${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 -0500998 ${resp}= Delete Request asdc ${data_path} headers=${headers}
DR695Hccff30b2017-02-17 18:44:24 -0500999 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -04001000 [Return] ${resp}
DR695Hccff30b2017-02-17 18:44:24 -05001001Open ASDC GUI
1002 [Documentation] Logs in to ASDC GUI
1003 [Arguments] ${PATH}
1004 ## Setup Browever now being managed by the test case
1005 ##Setup Browser
DR695Hbf5a3a32017-06-30 13:09:57 -04001006 Go To ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -05001007 Maximize Browser Window
Jerry Flood6bd1afa2017-10-09 09:59:23 -04001008
DR695Hccff30b2017-02-17 18:44:24 -05001009 Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
DR695Hbf5a3a32017-06-30 13:09:57 -04001010 Log Logging in to ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -05001011 Title Should Be ASDC
Jerry Floode2a48d72017-06-21 15:06:29 -04001012 Wait Until Page Contains Element xpath=//div/a[text()='SDC'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
DR695Hbf5a3a32017-06-30 13:09:57 -04001013 Log Logged in to ${ASDC_FE_ENDPOINT}${PATH}
Jerry Flood6bd1afa2017-10-09 09:59:23 -04001014
1015
1016Create Multi Part
1017 [Arguments] ${addTo} ${partName} ${filePath} ${contentType}=${None}
1018 ${fileData}= Get Binary File ${filePath}
1019 ${fileDir} ${fileName}= Split Path ${filePath}
1020 ${partData}= Create List ${fileName} ${fileData} ${contentType}
1021 Set To Dictionary ${addTo} ${partName}=${partData}
Brian Freemanf940ee92018-05-25 21:09:05 -05001022