blob: 463fb6bad2057025094e287059ea9e47a579edcd [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
3Library RequestsLibrary
Jerry Floode2a48d72017-06-21 15:06:29 -04004Library UUID
5Library JSONUtils
DR695Hccff30b2017-02-17 18:44:24 -05006Library OperatingSystem
7Library Collections
8Library ExtendedSelenium2Library
9Resource global_properties.robot
10Resource browser_setup.robot
11Resource json_templater.robot
12*** Variables ***
13${ASDC_DESIGNER_USER_ID} cs0008
14${ASDC_TESTER_USER_ID} jm0007
15${ASDC_GOVERNOR_USER_ID} gv0001
16${ASDC_OPS_USER_ID} op0001
17${ASDC_HEALTH_CHECK_PATH} /sdc1/rest/healthCheck
18${ASDC_VENDOR_LICENSE_MODEL_PATH} /onboarding-api/v1.0/vendor-license-models
19${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} /onboarding-api/v1.0/vendor-software-products
20${ASDC_VENDOR_KEY_GROUP_PATH} /license-key-groups
21${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} /entitlement-pools
22${ASDC_VENDOR_FEATURE_GROUP_PATH} /feature-groups
23${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} /license-agreements
24${ASDC_VENDOR_ACTIONS_PATH} /actions
Jerry Floode2a48d72017-06-21 15:06:29 -040025${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH} /orchestration-template-candidate
DR695Hccff30b2017-02-17 18:44:24 -050026${ASDC_CATALOG_RESOURCES_PATH} /sdc2/rest/v1/catalog/resources
27${ASDC_CATALOG_SERVICES_PATH} /sdc2/rest/v1/catalog/services
28${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} /sdc2/rest/v1/inactiveComponents/resource
29${ASDC_CATALOG_INACTIVE_SERVICES_PATH} /sdc2/rest/v1/inactiveComponents/service
30${ASDC_CATALOG_LIFECYCLE_PATH} /lifecycleState
31${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} /resourceInstance
32${ASDC_CATALOG_SERVICE_DISTRIBUTION_STATE_PATH} /distribution-state
33${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} /distribution
34${ASDC_DISTRIBUTION_STATE_APPROVE_PATH} /approve
35${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} /distribution/PROD/activate
36${ASDC_LICENSE_MODEL_TEMPLATE} robot/assets/templates/asdc/license_model.template
37${ASDC_KEY_GROUP_TEMPLATE} robot/assets/templates/asdc/key_group.template
38${ASDC_ENTITLEMENT_POOL_TEMPLATE} robot/assets/templates/asdc/entitlement_pool.template
39${ASDC_FEATURE_GROUP_TEMPLATE} robot/assets/templates/asdc/feature_group.template
40${ASDC_LICENSE_AGREEMENT_TEMPLATE} robot/assets/templates/asdc/license_agreement.template
41${ASDC_ACTION_TEMPLATE} robot/assets/templates/asdc/action.template
42${ASDC_SOFTWARE_PRODUCT_TEMPLATE} robot/assets/templates/asdc/software_product.template
43${ASDC_CATALOG_RESOURCE_TEMPLATE} robot/assets/templates/asdc/catalog_resource.template
44${ASDC_USER_REMARKS_TEMPLATE} robot/assets/templates/asdc/user_remarks.template
45${ASDC_CATALOG_SERVICE_TEMPLATE} robot/assets/templates/asdc/catalog_service.template
46${ASDC_RESOURCE_INSTANCE_TEMPLATE} robot/assets/templates/asdc/resource_instance.template
DR695Hbf5a3a32017-06-30 13:09:57 -040047${ASDC_FE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_IP_ADDR}:${GLOBAL_ASDC_FE_PORT}
48${ASDC_BE_ENDPOINT} ${GLOBAL_ASDC_SERVER_PROTOCOL}://${GLOBAL_INJECTED_SDC_IP_ADDR}:${GLOBAL_ASDC_BE_PORT}
49
DR695Hccff30b2017-02-17 18:44:24 -050050*** Keywords ***
51Distribute Model From ASDC
52 [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
jf986075010a42017-02-22 16:52:54 -050053 [Arguments] ${model_zip_path} ${catalog_service_name}=
54 ${catalog_service_id}= Add ASDC Catalog Service ${catalog_service_name}
DR695Hccff30b2017-02-17 18:44:24 -050055 ${catalog_resource_ids}= Create List
56 : FOR ${zip} IN @{model_zip_path}
57 \ ${loop_catalog_resource_id}= Setup ASDC Catalog Resource ${zip}
Jerry Floode2a48d72017-06-21 15:06:29 -040058 \ Append To List ${catalog_resource_ids} ${loop_catalog_resource_id}
DR695Hccff30b2017-02-17 18:44:24 -050059 \ ${loop_catalog_resource_resp}= Get ASDC Catalog Resource ${loop_catalog_resource_id}
60 \ Add ASDC Resource Instance ${catalog_service_id} ${loop_catalog_resource_id} ${loop_catalog_resource_resp['name']}
61 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
62 Checkin ASDC Catalog Service ${catalog_service_id}
63 Request Certify ASDC Catalog Service ${catalog_service_id}
64 Start Certify ASDC Catalog Service ${catalog_service_id}
65 # on certify it gets a new id
66 ${catalog_service_id}= Certify ASDC Catalog Service ${catalog_service_id}
67 Approve ASDC Catalog Service ${catalog_service_id}
68 Distribute ASDC Catalog Service ${catalog_service_id}
69 ${catalog_service_resp}= Get ASDC Catalog Service ${catalog_service_id}
70 ${vf_module}= Find Element In Array ${loop_catalog_resource_resp['groups']} type org.openecomp.groups.VfModule
71 [Return] ${catalog_service_resp['name']} ${loop_catalog_resource_resp['name']} ${vf_module} ${catalog_resource_ids} ${catalog_service_id}
72 Check Catalog Service Distributed ${catalog_service_resp['uuid']}
73Setup ASDC Catalog Resource
74 [Documentation] Creates all the steps a vf needs for an asdc catalog resource and returns the id
75 [Arguments] ${model_zip_path}
76 ${license_model_id}= Add ASDC License Model
77 ${key_group_id}= Add ASDC License Group ${license_model_id}
78 ${pool_id}= Add ASDC Entitlement Pool ${license_model_id}
79 ${feature_group_id}= Add ASDC Feature Group ${license_model_id} ${key_group_id} ${pool_id}
80 ${license_agreement_id}= Add ASDC License Agreement ${license_model_id} ${feature_group_id}
81 Checkin ASDC License Model ${license_model_id}
82 Submit ASDC License Model ${license_model_id}
Jerry Floode2a48d72017-06-21 15:06:29 -040083 ${license_model_resp}= Get ASDC License Model ${license_model_id} 1.0
DR695Hccff30b2017-02-17 18:44:24 -050084 ${software_product_id}= Add ASDC Software Product ${license_agreement_id} ${feature_group_id} ${license_model_resp['vendorName']} ${license_model_id}
85 Upload ASDC Heat Package ${software_product_id} ${model_zip_path}
Jerry Floode2a48d72017-06-21 15:06:29 -040086 Validate ASDC Software Product ${software_product_id}
DR695Hccff30b2017-02-17 18:44:24 -050087 Checkin ASDC Software Product ${software_product_id}
88 Submit ASDC Software Product ${software_product_id}
89 Package ASDC Software Product ${software_product_id}
Jerry Floode2a48d72017-06-21 15:06:29 -040090 ${software_product_resp}= Get ASDC Software Product ${software_product_id} 1.0
DR695Hccff30b2017-02-17 18:44:24 -050091 ${catalog_resource_id}= Add ASDC Catalog Resource ${license_agreement_id} ${software_product_resp['name']} ${license_model_resp['vendorName']} ${software_product_id}
92 Checkin ASDC Catalog Resource ${catalog_resource_id}
93 Request Certify ASDC Catalog Resource ${catalog_resource_id}
94 Start Certify ASDC Catalog Resource ${catalog_resource_id}
95 # on certify it gets a new id
96 [Return] ${catalog_resource_id}
97 ${catalog_resource_id}= Certify ASDC Catalog Resource ${catalog_resource_id}
98Add ASDC License Model
99 [Documentation] Creates an asdc license model and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400100 ${uuid}= Generate UUID
101 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500102 ${map}= Create Dictionary vendor_name=${shortened_uuid}
103 ${data}= Fill JSON Template File ${ASDC_LICENSE_MODEL_TEMPLATE} ${map}
104 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH} ${data}
105 Should Be Equal As Strings ${resp.status_code} 200
106 [Return] ${resp.json()['value']}
107Get ASDC License Model
108 [Documentation] gets an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400109 [Arguments] ${id} ${version_id}=0.1
110 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}
111 [Return] ${resp.json()}
112Get ASDC License Models
113 [Documentation] gets an asdc license model by its id
114 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}
DR695Hccff30b2017-02-17 18:44:24 -0500115 [Return] ${resp.json()}
116Checkin ASDC License Model
117 [Documentation] checksin an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400118 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500119 ${map}= Create Dictionary action=Checkin
120 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Jerry Floode2a48d72017-06-21 15:06:29 -0400121 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500122 Should Be Equal As Strings ${resp.status_code} 200
123 [Return] ${resp.json()}
124Submit ASDC License Model
125 [Documentation] submits an asdc license model by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400126 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500127 ${map}= Create Dictionary action=Submit
128 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
Jerry Floode2a48d72017-06-21 15:06:29 -0400129 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500130 Should Be Equal As Strings ${resp.status_code} 200
131 [Return] ${resp.json()}
132Checkin ASDC Software Product
133 [Documentation] checksin an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400134 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500135 ${map}= Create Dictionary action=Checkin
Jerry Floode2a48d72017-06-21 15:06:29 -0400136 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
137 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data}
138 Should Be Equal As Strings ${resp.status_code} 200
139 [Return] ${resp.json()}
140Validate ASDC Software Product
141 [Documentation] checksin an asdc Software Product by its id
142 [Arguments] ${id} ${version_id}=0.1
143 ${data}= Catenate
144 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}/orchestration-template-candidate/process ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500145 Should Be Equal As Strings ${resp.status_code} 200
146 [Return] ${resp.json()}
147Submit ASDC Software Product
148 [Documentation] submits an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400149 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500150 ${map}= Create Dictionary action=Submit
Jerry Floode2a48d72017-06-21 15:06:29 -0400151 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
152 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500153 Should Be Equal As Strings ${resp.status_code} 200
154 [Return] ${resp.json()}
155Package ASDC Software Product
156 [Documentation] creates_package on an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400157 [Arguments] ${id} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500158 ${map}= Create Dictionary action=Create_Package
Jerry Floode2a48d72017-06-21 15:06:29 -0400159 ${data}= Fill JSON Template File ${ASDC_ACTION_TEMPLATE} ${map}
160 ${resp}= Run ASDC Put Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500161 Should Be Equal As Strings ${resp.status_code} 200
Jerry Floode2a48d72017-06-21 15:06:29 -0400162 [Return] ${resp.json()}
DR695Hccff30b2017-02-17 18:44:24 -0500163Add ASDC Entitlement Pool
164 [Documentation] Creates an asdc Entitlement Pool and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400165 [Arguments] ${license_model_id} ${version_id}=0.1
166 ${uuid}= Generate UUID
167 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500168 ${map}= Create Dictionary entitlement_pool_name=${shortened_uuid}
Jerry Floode2a48d72017-06-21 15:06:29 -0400169 ${data}= Fill JSON Template File ${ASDC_ENTITLEMENT_POOL_TEMPLATE} ${map}
170 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500171 Should Be Equal As Strings ${resp.status_code} 200
172 [Return] ${resp.json()['value']}
173Get ASDC Entitlement Pool
174 [Documentation] gets an asdc Entitlement Pool by its id
175 [Arguments] ${license_model_id} ${pool_id}
176 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_ENTITLEMENT_POOL_PATH}/${pool_id}
177 [Return] ${resp.json()}
178Add ASDC License Group
179 [Documentation] Creates an asdc license group and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400180 [Arguments] ${license_model_id} ${version_id}=0.1
181 ${uuid}= Generate UUID
182 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500183 ${map}= Create Dictionary key_group_name=${shortened_uuid}
Jerry Floode2a48d72017-06-21 15:06:29 -0400184 ${data}= Fill JSON Template File ${ASDC_KEY_GROUP_TEMPLATE} ${map}
185 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500186 Should Be Equal As Strings ${resp.status_code} 200
187 [Return] ${resp.json()['value']}
188Get ASDC License Group
189 [Documentation] gets an asdc license group by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400190 [Arguments] ${license_model_id} ${group_id} ${version_id}
191 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_KEY_GROUP_PATH}/${group_id}
DR695Hccff30b2017-02-17 18:44:24 -0500192 [Return] ${resp.json()}
193Add ASDC Feature Group
194 [Documentation] Creates an asdc Feature Group and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400195 [Arguments] ${license_model_id} ${key_group_id} ${entitlement_pool_id} ${version_id}=0.1
196 ${uuid}= Generate UUID
197 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500198 ${map}= Create Dictionary feature_group_name=${shortened_uuid} key_group_id=${key_group_id} entitlement_pool_id=${entitlement_pool_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400199 ${data}= Fill JSON Template File ${ASDC_FEATURE_GROUP_TEMPLATE} ${map}
200 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_FEATURE_GROUP_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500201 Should Be Equal As Strings ${resp.status_code} 200
202 [Return] ${resp.json()['value']}
203Get ASDC Feature Group
204 [Documentation] gets an asdc Feature Group by its id
205 [Arguments] ${license_model_id} ${group_id}
206 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_FEATURE_GROUP_PATH}/${group_id}
207 [Return] ${resp.json()}
208Add ASDC License Agreement
209 [Documentation] Creates an asdc License Agreement and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400210 [Arguments] ${license_model_id} ${feature_group_id} ${version_id}=0.1
211 ${uuid}= Generate UUID
212 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500213 ${map}= Create Dictionary license_agreement_name=${shortened_uuid} feature_group_id=${feature_group_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400214 ${data}= Fill JSON Template File ${ASDC_LICENSE_AGREEMENT_TEMPLATE} ${map}
215 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}/versions/${version_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH} ${data}
DR695Hccff30b2017-02-17 18:44:24 -0500216 Should Be Equal As Strings ${resp.status_code} 200
217 [Return] ${resp.json()['value']}
218Get ASDC License Agreement
219 [Documentation] gets an asdc License Agreement by its id
220 [Arguments] ${license_model_id} ${agreement_id}
221 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${license_model_id}${ASDC_VENDOR_LICENSE_AGREEMENT_PATH}/${agreement_id}
222 [Return] ${resp.json()}
223Add ASDC Software Product
224 [Documentation] Creates an asdc Software Product and returns its id
225 [Arguments] ${license_agreement_id} ${feature_group_id} ${license_model_name} ${license_model_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400226 ${uuid}= Generate UUID
227 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
DR695Hccff30b2017-02-17 18:44:24 -0500228 ${map}= Create Dictionary software_product_name=${shortened_uuid} feature_group_id=${feature_group_id} license_agreement_id=${license_agreement_id} vendor_name=${license_model_name} vendor_id=${license_model_id}
Jerry Floode2a48d72017-06-21 15:06:29 -0400229 ${data}= Fill JSON Template File ${ASDC_SOFTWARE_PRODUCT_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500230 ${resp}= Run ASDC Post Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH} ${data}
231 Should Be Equal As Strings ${resp.status_code} 200
232 [Return] ${resp.json()['vspId']}
233Get ASDC Software Product
234 [Documentation] gets an asdc Software Product by its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400235 [Arguments] ${software_product_id} ${version_id}=0.1
236 ${resp}= Run ASDC Get Request ${ASDC_VENDOR_SOFTWARE_PRODUCT_PATH}/${software_product_id}/versions/${version_id}
DR695Hccff30b2017-02-17 18:44:24 -0500237 [Return] ${resp.json()}
238Add ASDC Catalog Resource
239 [Documentation] Creates an asdc Catalog Resource and returns its id
240 [Arguments] ${license_agreement_id} ${software_product_name} ${license_model_name} ${software_product_id}
241 ${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 -0400242 ${data}= Fill JSON Template File ${ASDC_CATALOG_RESOURCE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500243 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
244 Should Be Equal As Strings ${resp.status_code} 201
245 [Return] ${resp.json()['uniqueId']}
246Mark ASDC Catalog Resource Inactive
247 [Documentation] deletes an asdc Catalog Resource
248 [Arguments] ${catalog_resource_id}
249 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
250 Should Be Equal As Strings ${resp.status_code} 204
251 [Return] ${resp}
252Delete Inactive ASDC Catalog Resources
253 [Documentation] delete all asdc Catalog Resources that are inactive
254 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_RESOURCES_PATH} ${ASDC_DESIGNER_USER_ID}
255 Should Be Equal As Strings ${resp.status_code} 200
256 [Return] ${resp.json()}
257Get ASDC Catalog Resource
258 [Documentation] gets an asdc Catalog Resource by its id
259 [Arguments] ${catalog_resource_id}
260 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id} ${ASDC_DESIGNER_USER_ID}
261 [Return] ${resp.json()}
262Checkin ASDC Catalog Resource
263 [Documentation] checksin an asdc Catalog Resource by its id
264 [Arguments] ${catalog_resource_id}
265 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400266 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500267 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID}
268 Should Be Equal As Strings ${resp.status_code} 200
269 [Return] ${resp.json()}
270Request Certify ASDC Catalog Resource
271 [Documentation] requests certify on an asdc Catalog Resource by its id
272 [Arguments] ${catalog_resource_id}
273 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400274 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500275 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID}
276 Should Be Equal As Strings ${resp.status_code} 200
277 [Return] ${resp.json()}
278Start Certify ASDC Catalog Resource
279 [Documentation] start certify an asdc Catalog Resource by its id
280 [Arguments] ${catalog_resource_id}
281 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID}
282 Should Be Equal As Strings ${resp.status_code} 200
283 [Return] ${resp.json()}
284Certify ASDC Catalog Resource
285 [Documentation] start certify an asdc Catalog Resource by its id and returns the new id
286 [Arguments] ${catalog_resource_id}
287 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400288 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500289 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_RESOURCES_PATH}/${catalog_resource_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID}
290 Should Be Equal As Strings ${resp.status_code} 200
291 [Return] ${resp.json()['uniqueId']}
292Upload ASDC Heat Package
293 [Documentation] Creates an asdc Software Product and returns its id
Jerry Floode2a48d72017-06-21 15:06:29 -0400294 [Arguments] ${software_product_id} ${file_path} ${version_id}=0.1
DR695Hccff30b2017-02-17 18:44:24 -0500295 ${file}= Get Binary File ${file_path}
296 ${files}= Create Dictionary upload=${file}
Jerry Floode2a48d72017-06-21 15:06:29 -0400297 ${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}
298 Should Be Equal As Strings ${resp.status_code} 200
DR695Hccff30b2017-02-17 18:44:24 -0500299Add ASDC Catalog Service
300 [Documentation] Creates an asdc Catalog Service and returns its id
jf986075010a42017-02-22 16:52:54 -0500301 [Arguments] ${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400302 ${uuid}= Generate UUID
jf986075010a42017-02-22 16:52:54 -0500303 ${shortened_uuid}= Evaluate str("${uuid}")[:23]
Jerry Floode2a48d72017-06-21 15:06:29 -0400304 ${catalog_service_name}= Set Variable If '${catalog_service_name}' =='' ${shortened_uuid} ${catalog_service_name}
jf986075010a42017-02-22 16:52:54 -0500305 ${map}= Create Dictionary service_name=${catalog_service_name}
Jerry Floode2a48d72017-06-21 15:06:29 -0400306 ${data}= Fill JSON Template File ${ASDC_CATALOG_SERVICE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500307 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
308 Should Be Equal As Strings ${resp.status_code} 201
309 [Return] ${resp.json()['uniqueId']}
310Mark ASDC Catalog Service Inactive
311 [Documentation] Deletes an asdc Catalog Service
312 [Arguments] ${catalog_service_id}
313 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
314 Should Be Equal As Strings ${resp.status_code} 204
315 [Return] ${resp}
316Delete Inactive ASDC Catalog Services
317 [Documentation] delete all asdc Catalog Serivces that are inactive
318 ${resp}= Run ASDC Delete Request ${ASDC_CATALOG_INACTIVE_SERVICES_PATH} ${ASDC_DESIGNER_USER_ID}
319 Should Be Equal As Strings ${resp.status_code} 200
320 [Return] ${resp.json()}
321Get ASDC Catalog Service
322 [Documentation] gets an asdc Catalog Service by its id
323 [Arguments] ${catalog_service_id}
324 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id} ${ASDC_DESIGNER_USER_ID}
325 [Return] ${resp.json()}
326Checkin ASDC Catalog Service
327 [Documentation] checksin an asdc Catalog Service by its id
328 [Arguments] ${catalog_service_id}
329 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400330 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500331 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/checkin ${data} ${ASDC_DESIGNER_USER_ID}
332 Should Be Equal As Strings ${resp.status_code} 200
333 [Return] ${resp.json()}
334Request Certify ASDC Catalog Service
335 [Documentation] requests certify on an asdc Catalog Service by its id
336 [Arguments] ${catalog_service_id}
337 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400338 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500339 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certificationRequest ${data} ${ASDC_DESIGNER_USER_ID}
340 Should Be Equal As Strings ${resp.status_code} 200
341 [Return] ${resp.json()}
342Start Certify ASDC Catalog Service
343 [Documentation] start certify an asdc Catalog Service by its id
344 [Arguments] ${catalog_service_id}
345 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/startCertification ${None} ${ASDC_TESTER_USER_ID}
346 Should Be Equal As Strings ${resp.status_code} 200
347 [Return] ${resp.json()}
348Certify ASDC Catalog Service
349 [Documentation] start certify an asdc Catalog Service by its id and returns the new id
350 [Arguments] ${catalog_service_id}
351 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400352 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500353 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_LIFECYCLE_PATH}/certify ${data} ${ASDC_TESTER_USER_ID}
354 Should Be Equal As Strings ${resp.status_code} 200
355 [Return] ${resp.json()['uniqueId']}
356Approve ASDC Catalog Service
357 [Documentation] approve an asdc Catalog Service by its id
358 [Arguments] ${catalog_service_id}
359 ${map}= Create Dictionary user_remarks=Robot remarks
Jerry Floode2a48d72017-06-21 15:06:29 -0400360 ${data}= Fill JSON Template File ${ASDC_USER_REMARKS_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500361 ${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}
362 Should Be Equal As Strings ${resp.status_code} 200
363 [Return] ${resp.json()}
364Distribute ASDC Catalog Service
365 [Documentation] distribute an asdc Catalog Service by its id
366 [Arguments] ${catalog_service_id}
367 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_DISTRIBUTION_ACTIVATE_PATH} ${None} ${ASDC_OPS_USER_ID}
368 Should Be Equal As Strings ${resp.status_code} 200
369 [Return] ${resp.json()}
370Add ASDC Resource Instance
371 [Documentation] Creates an asdc Resource Instance and returns its id
372 [Arguments] ${catalog_service_id} ${catalog_resource_id} ${catalog_resource_name}
373 ${milli_timestamp}= Generate MilliTimestamp UUID
374 ${map}= Create Dictionary catalog_resource_id=${catalog_resource_id} catalog_resource_name=${catalog_resource_name} milli_timestamp=${milli_timestamp}
Jerry Floode2a48d72017-06-21 15:06:29 -0400375 ${data}= Fill JSON Template File ${ASDC_RESOURCE_INSTANCE_TEMPLATE} ${map}
DR695Hccff30b2017-02-17 18:44:24 -0500376 ${resp}= Run ASDC Post Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_id}${ASDC_CATALOG_SERVICE_RESOURCE_INSTANCE_PATH} ${data} ${ASDC_DESIGNER_USER_ID}
377 Should Be Equal As Strings ${resp.status_code} 201
378 [Return] ${resp.json()['uniqueId']}
379Get Catalog Service Distribution
380 [Documentation] gets an asdc catalog Service distrbution
381 [Arguments] ${catalog_service_uuid}
382 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}/${catalog_service_uuid}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH} ${ASDC_OPS_USER_ID}
383 Should Be Equal As Strings ${resp.status_code} 200
384 [Return] ${resp.json()}
385Check Catalog Service Distributed
386 [Documentation] gets an asdc catalog Service distrbution
387 [Arguments] ${catalog_service_uuid}
388 ${dist_resp}= Get Catalog Service Distribution ${catalog_service_uuid}
389 Should Be Equal As Strings ${dist_resp['distributionStatusOfServiceList'][0]['deployementStatus']} Distributed
390 ${det_resp}= Get Catalog Service Distribution Details ${dist_resp['distributionStatusOfServiceList'][0]['distributionID']}
391 @{ITEMS}= Copy List ${det_resp['distributionStatusList']}
392 :FOR ${ELEMENT} IN @{ITEMS}
393 \ Log ${ELEMENT['status']}
Jerry Floode2a48d72017-06-21 15:06:29 -0400394 \ Should Match Regexp ${ELEMENT['status']} ^(DEPLOY_OK|NOTIFIED|DOWNLOAD_OK|NOT_NOTIFIED)$
DR695Hccff30b2017-02-17 18:44:24 -0500395Get Catalog Service Distribution Details
396 [Documentation] gets an asdc catalog Service distrbution details
397 [Arguments] ${catalog_service_distribution_id}
398 ${resp}= Run ASDC Get Request ${ASDC_CATALOG_SERVICES_PATH}${ASDC_CATALOG_SERVICE_DISTRIBUTION_PATH}/${catalog_service_distribution_id} ${ASDC_OPS_USER_ID}
399 Should Be Equal As Strings ${resp.status_code} 200
400 [Return] ${resp.json()}
401Run ASDC Health Check
402 [Documentation] Runs a ASDC health check
DR695Hbf5a3a32017-06-30 13:09:57 -0400403 ${session}= Create Session asdc ${ASDC_FE_ENDPOINT}
DR695Hccff30b2017-02-17 18:44:24 -0500404 ${uuid}= Generate UUID
405 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
406 ${resp}= Get Request asdc ${ASDC_HEALTH_CHECK_PATH} headers=${headers}
407 Should Be Equal As Strings ${resp.status_code} 200
408 @{ITEMS}= Copy List ${resp.json()['componentsInfo']}
409 :FOR ${ELEMENT} IN @{ITEMS}
410 \ Log ${ELEMENT['healthCheckStatus']}
411 \ Should Be Equal As Strings ${ELEMENT['healthCheckStatus']} UP
412Run ASDC Get Request
413 [Documentation] Runs an ASDC get request
414 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID}
415 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
DR695Hbf5a3a32017-06-30 13:09:57 -0400416 Log Creating session ${ASDC_BE_ENDPOINT}
417 ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500418 ${uuid}= Generate UUID
419 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
420 ${resp}= Get Request asdc ${data_path} headers=${headers}
421 Log Received response from asdc ${resp.text}
422 [Return] ${resp}
423Run ASDC Put Request
424 [Documentation] Runs an ASDC put request
425 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID}
426 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
DR695Hbf5a3a32017-06-30 13:09:57 -0400427 Log Creating session ${ASDC_BE_ENDPOINT}
428 ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500429 ${uuid}= Generate UUID
430 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
431 ${resp}= Put Request asdc ${data_path} data=${data} headers=${headers}
432 Log Received response from asdc ${resp.text}
433 [Return] ${resp}
434Run ASDC Post Files Request
435 [Documentation] Runs an ASDC post request
436 [Arguments] ${data_path} ${files} ${user}=${ASDC_DESIGNER_USER_ID}
437 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
DR695Hbf5a3a32017-06-30 13:09:57 -0400438 Log Creating session ${ASDC_BE_ENDPOINT}
439 ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500440 ${uuid}= Generate UUID
441 ${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}
442 ${resp}= Post Request asdc ${data_path} files=${files} headers=${headers}
443 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400444 [Return] ${resp}
DR695Hccff30b2017-02-17 18:44:24 -0500445Run ASDC Post Request
446 [Documentation] Runs an ASDC post request
447 [Arguments] ${data_path} ${data} ${user}=${ASDC_DESIGNER_USER_ID}
448 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
DR695Hbf5a3a32017-06-30 13:09:57 -0400449 Log Creating session ${ASDC_BE_ENDPOINT}
450 ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500451 ${uuid}= Generate UUID
452 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
453 ${resp}= Post Request asdc ${data_path} data=${data} headers=${headers}
454 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400455 [Return] ${resp}
DR695Hccff30b2017-02-17 18:44:24 -0500456Run ASDC Delete Request
457 [Documentation] Runs an ASDC delete request
458 [Arguments] ${data_path} ${user}=${ASDC_DESIGNER_USER_ID}
459 ${auth}= Create List ${GLOBAL_ASDC_BE_USERNAME} ${GLOBAL_ASDC_BE_PASSWORD}
DR695Hbf5a3a32017-06-30 13:09:57 -0400460 Log Creating session ${ASDC_BE_ENDPOINT}
461 ${session}= Create Session asdc ${ASDC_BE_ENDPOINT} auth=${auth}
DR695Hccff30b2017-02-17 18:44:24 -0500462 ${uuid}= Generate UUID
463 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json USER_ID=${user} X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
464 ${resp}= Delete Request asdc ${data_path} headers=${headers}
465 Log Received response from asdc ${resp.text}
Jerry Floode2a48d72017-06-21 15:06:29 -0400466 [Return] ${resp}
DR695Hccff30b2017-02-17 18:44:24 -0500467Open ASDC GUI
468 [Documentation] Logs in to ASDC GUI
469 [Arguments] ${PATH}
470 ## Setup Browever now being managed by the test case
471 ##Setup Browser
DR695Hbf5a3a32017-06-30 13:09:57 -0400472 Go To ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -0500473 Maximize Browser Window
474 Set Selenium Speed ${GLOBAL_SELENIUM_DELAY}
475 Set Browser Implicit Wait ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
DR695Hbf5a3a32017-06-30 13:09:57 -0400476 Log Logging in to ${ASDC_FE_ENDPOINT}${PATH}
DR695Hccff30b2017-02-17 18:44:24 -0500477 Title Should Be ASDC
Jerry Floode2a48d72017-06-21 15:06:29 -0400478 Wait Until Page Contains Element xpath=//div/a[text()='SDC'] ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
DR695Hbf5a3a32017-06-30 13:09:57 -0400479 Log Logged in to ${ASDC_FE_ENDPOINT}${PATH}