Select search type drop down in VID UI
[testsuite.git] / robot / resources / asdc_interface.robot
1 *** Settings ***
2 Documentation     The main interface for interacting with ASDC. It handles low level stuff like managing the http request library and DCAE required fields
3 Library               RequestsLibrary
4 Library           UUID
5 Library           JSONUtils
6 Library           OperatingSystem
7 Library           Collections
8 Library               ExtendedSelenium2Library
9 Resource          global_properties.robot
10 Resource          browser_setup.robot
11 Resource          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
25 ${ASDC_VENDOR_SOFTWARE_UPLOAD_PATH}    /orchestration-template-candidate
26 ${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
47 ${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
50 *** Keywords ***
51 Distribute 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
53     [Arguments]    ${model_zip_path}   ${catalog_service_name}=
54     ${catalog_service_id}=    Add ASDC Catalog Service    ${catalog_service_name}
55     ${catalog_resource_ids}=    Create List
56     : FOR    ${zip}     IN     @{model_zip_path}
57     \    ${loop_catalog_resource_id}=    Setup ASDC Catalog Resource    ${zip}
58     \    Append To List    ${catalog_resource_ids}   ${loop_catalog_resource_id}
59     \    ${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']}
73 Setup 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}
83     ${license_model_resp}=    Get ASDC License Model    ${license_model_id}   1.0
84     ${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}
86     Validate ASDC Software Product    ${software_product_id}
87     Checkin ASDC Software Product    ${software_product_id}
88     Submit ASDC Software Product    ${software_product_id}
89     Package ASDC Software Product    ${software_product_id}
90     ${software_product_resp}=    Get ASDC Software Product    ${software_product_id}   1.0
91     ${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}
98 Add ASDC License Model
99     [Documentation]    Creates an asdc license model and returns its id
100     ${uuid}=    Generate UUID
101     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
102     ${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']}
107 Get ASDC License Model
108     [Documentation]    gets an asdc license model by its id
109     [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()}
112 Get ASDC License Models
113     [Documentation]    gets an asdc license model by its id
114     ${resp}=    Run ASDC Get Request    ${ASDC_VENDOR_LICENSE_MODEL_PATH}
115     [Return]    ${resp.json()}
116 Checkin ASDC License Model
117     [Documentation]    checksin an asdc license model by its id
118     [Arguments]    ${id}   ${version_id}=0.1
119     ${map}=    Create Dictionary    action=Checkin
120     ${data}=   Fill JSON Template File    ${ASDC_ACTION_TEMPLATE}    ${map}
121     ${resp}=    Run ASDC Put Request    ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH}    ${data}
122     Should Be Equal As Strings  ${resp.status_code}     200
123     [Return]    ${resp.json()}
124 Submit ASDC License Model
125     [Documentation]    submits an asdc license model by its id
126     [Arguments]    ${id}   ${version_id}=0.1
127     ${map}=    Create Dictionary    action=Submit
128     ${data}=   Fill JSON Template File    ${ASDC_ACTION_TEMPLATE}    ${map}
129     ${resp}=    Run ASDC Put Request    ${ASDC_VENDOR_LICENSE_MODEL_PATH}/${id}/versions/${version_id}${ASDC_VENDOR_ACTIONS_PATH}    ${data}
130     Should Be Equal As Strings  ${resp.status_code}     200
131     [Return]    ${resp.json()}
132 Checkin ASDC Software Product
133     [Documentation]    checksin an asdc Software Product by its id
134     [Arguments]    ${id}   ${version_id}=0.1
135     ${map}=    Create Dictionary    action=Checkin
136     ${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()}
140 Validate 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}
145     Should Be Equal As Strings  ${resp.status_code}     200
146     [Return]    ${resp.json()}
147 Submit ASDC Software Product
148     [Documentation]    submits an asdc Software Product by its id
149     [Arguments]    ${id}   ${version_id}=0.1
150     ${map}=    Create Dictionary    action=Submit
151     ${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}
153     Should Be Equal As Strings  ${resp.status_code}     200
154     [Return]    ${resp.json()}
155 Package ASDC Software Product
156     [Documentation]    creates_package on an asdc Software Product by its id
157     [Arguments]    ${id}   ${version_id}=0.1
158     ${map}=    Create Dictionary    action=Create_Package
159     ${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}
161     Should Be Equal As Strings  ${resp.status_code}     200
162     [Return]    ${resp.json()}
163 Add ASDC Entitlement Pool
164     [Documentation]    Creates an asdc Entitlement Pool and returns its id
165     [Arguments]    ${license_model_id}   ${version_id}=0.1
166     ${uuid}=    Generate UUID
167     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
168     ${map}=    Create Dictionary    entitlement_pool_name=${shortened_uuid}
169     ${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}
171     Should Be Equal As Strings  ${resp.status_code}     200
172     [Return]    ${resp.json()['value']}
173 Get 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()}
178 Add ASDC License Group
179     [Documentation]    Creates an asdc license group and returns its id
180     [Arguments]    ${license_model_id}   ${version_id}=0.1
181     ${uuid}=    Generate UUID
182     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
183     ${map}=    Create Dictionary    key_group_name=${shortened_uuid}
184     ${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}
186     Should Be Equal As Strings  ${resp.status_code}     200
187     [Return]    ${resp.json()['value']}
188 Get ASDC License Group
189     [Documentation]    gets an asdc license group by its id
190     [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}
192     [Return]    ${resp.json()}
193 Add ASDC Feature Group
194     [Documentation]    Creates an asdc Feature Group and returns its id
195     [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]
198     ${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}
199     ${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}
201     Should Be Equal As Strings  ${resp.status_code}     200
202     [Return]    ${resp.json()['value']}
203 Get 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()}
208 Add ASDC License Agreement
209     [Documentation]    Creates an asdc License Agreement and returns its id
210     [Arguments]    ${license_model_id}    ${feature_group_id}      ${version_id}=0.1
211     ${uuid}=    Generate UUID
212     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
213     ${map}=    Create Dictionary    license_agreement_name=${shortened_uuid}    feature_group_id=${feature_group_id}
214     ${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}
216     Should Be Equal As Strings  ${resp.status_code}     200
217     [Return]    ${resp.json()['value']}
218 Get 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()}
223 Add 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}
226     ${uuid}=    Generate UUID
227     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
228     ${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}
229     ${data}=   Fill JSON Template File    ${ASDC_SOFTWARE_PRODUCT_TEMPLATE}    ${map}
230     ${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']}
233 Get ASDC Software Product
234     [Documentation]    gets an asdc Software Product by its id
235     [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}
237     [Return]    ${resp.json()}
238 Add 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}
242     ${data}=   Fill JSON Template File    ${ASDC_CATALOG_RESOURCE_TEMPLATE}    ${map}
243     ${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']}
246 Mark 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}
252 Delete 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()}
257 Get 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()}
262 Checkin 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
266     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
267     ${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()}
270 Request 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
274     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
275     ${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()}
278 Start 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()}
284 Certify 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
288     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
289     ${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']}
292 Upload ASDC Heat Package
293     [Documentation]    Creates an asdc Software Product and returns its id
294     [Arguments]    ${software_product_id}    ${file_path}   ${version_id}=0.1
295     ${file}=    Get Binary File     ${file_path}
296     ${files}=     Create Dictionary     upload=${file}
297     ${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
299 Add ASDC Catalog Service
300     [Documentation]    Creates an asdc Catalog Service and returns its id
301     [Arguments]   ${catalog_service_name}
302     ${uuid}=    Generate UUID
303     ${shortened_uuid}=     Evaluate    str("${uuid}")[:23]
304     ${catalog_service_name}=   Set Variable If   '${catalog_service_name}' ==''   ${shortened_uuid}   ${catalog_service_name}
305     ${map}=    Create Dictionary    service_name=${catalog_service_name}
306     ${data}=   Fill JSON Template File    ${ASDC_CATALOG_SERVICE_TEMPLATE}    ${map}
307     ${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']}
310 Mark 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}
316 Delete 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()}
321 Get 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()}
326 Checkin 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
330     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
331     ${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()}
334 Request 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
338     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
339     ${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()}
342 Start 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()}
348 Certify 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
352     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
353     ${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']}
356 Approve 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
360     ${data}=   Fill JSON Template File    ${ASDC_USER_REMARKS_TEMPLATE}    ${map}
361     ${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()}
364 Distribute 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()}
370 Add 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}
375     ${data}=   Fill JSON Template File    ${ASDC_RESOURCE_INSTANCE_TEMPLATE}    ${map}
376     ${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']}
379 Get 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()}
385 Check 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']}
394     \    Should Match Regexp    ${ELEMENT['status']}    ^(DEPLOY_OK|NOTIFIED|DOWNLOAD_OK|NOT_NOTIFIED)$
395 Get 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()}
401 Run ASDC Health Check
402     [Documentation]    Runs a ASDC health check
403     ${session}=    Create Session       asdc    ${ASDC_FE_ENDPOINT}
404     ${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
412 Run 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}
416     Log    Creating session ${ASDC_BE_ENDPOINT}
417     ${session}=    Create Session       asdc    ${ASDC_BE_ENDPOINT}    auth=${auth}
418     ${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}
423 Run 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}
427     Log    Creating session ${ASDC_BE_ENDPOINT}
428     ${session}=    Create Session       asdc    ${ASDC_BE_ENDPOINT}    auth=${auth}
429     ${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}
434 Run 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}
438     Log    Creating session ${ASDC_BE_ENDPOINT}
439     ${session}=    Create Session       asdc    ${ASDC_BE_ENDPOINT}    auth=${auth}
440     ${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}
444     [Return]    ${resp}
445 Run 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}
449     Log    Creating session ${ASDC_BE_ENDPOINT}
450     ${session}=    Create Session       asdc    ${ASDC_BE_ENDPOINT}    auth=${auth}
451     ${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}
455     [Return]    ${resp}
456 Run 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}
460     Log    Creating session ${ASDC_BE_ENDPOINT}
461     ${session}=    Create Session       asdc    ${ASDC_BE_ENDPOINT}    auth=${auth}
462     ${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}
466     [Return]    ${resp}
467 Open 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
472     Go To    ${ASDC_FE_ENDPOINT}${PATH}
473     Maximize Browser Window
474     Set Selenium Speed    ${GLOBAL_SELENIUM_DELAY}
475     Set Browser Implicit Wait    ${GLOBAL_SELENIUM_BROWSER_IMPLICIT_WAIT}
476     Log    Logging in to ${ASDC_FE_ENDPOINT}${PATH}
477     Title Should Be    ASDC
478     Wait Until Page Contains Element    xpath=//div/a[text()='SDC']    ${GLOBAL_SELENIUM_BROWSER_WAIT_TIMEOUT}
479     Log    Logged in to ${ASDC_FE_ENDPOINT}${PATH}