2 Documentation The main interface for interacting with DCAE. It handles low level stuff like managing the http request library and DCAE required fields
3 Library RequestsLibrary
5 Library OperatingSystem
7 Resource global_properties.robot
10 ${DCAE_HEALTH_CHECK_BODY} robot/assets/dcae/dcae_healthcheck.json
11 ${DCAE_HEALTH_CHECK_PATH} /gui
15 [Documentation] Runs a DCAE health check
16 ${auth}= Create List ${GLOBAL_DCAE_USERNAME} ${GLOBAL_DCAE_PASSWORD}
17 Log Creating session ${GLOBAL_DCAE_SERVER}
18 ${session}= Create Session dcae ${GLOBAL_DCAE_SERVER} auth=${auth}
19 ${uuid}= Generate UUID
20 ${data}= OperatingSystem.Get File ${DCAE_HEALTH_CHECK_BODY}
21 ${headers}= Create Dictionary X-ECOMP-Client-Version=ONAP-R2 action=getTable Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
22 ${resp}= Put Request dcae ${DCAE_HEALTH_CHECK_PATH} data=${data} headers=${headers}
23 Log Received response from dcae ${resp.json()}
24 Should Be Equal As Strings ${resp.status_code} 200
25 Check DCAE Results ${resp.json()}
28 [Documentation] Parse DCAE JSON response and make sure all rows have healthTestStatus=GREEN (except for the exceptions ;-)
30 @{rows}= Get From Dictionary ${json['returns']} rows
31 @{headers}= Get From Dictionary ${json['returns']} columns
33 # Retrieve column names from headers
34 ${columns}= Create List
35 :for ${header} in @{headers}
36 \ ${colName}= Get From Dictionary ${header} colName
37 \ Append To List ${columns} ${colName}
39 # Process each row making sure status=GREEN
40 :for ${row} in @{rows}
41 \ ${cells}= Get From Dictionary ${row} cells
42 \ ${dict}= Make A Dictionary ${cells} ${columns}
43 \ Is DCAE Status Valid ${dict}
47 # If it is GREEN we are done.
48 ${status} ${value}= Run Keyword And Ignore Error Dictionary Should Contain Item ${dict} healthTestStatus GREEN
49 Return From Keyword If '${status}' == 'PASS'
51 # Check for Exceptions
53 ${status} ${value}= Run Keyword And Ignore Error Check For Exception ${dict} vm-controller UNDEPLOYED YELLOW
54 Return From Keyword If '${status}' == 'PASS'
56 # Status not GREEN or is not an exception
57 Fail Health check failed ${dict}
60 [Arguments] ${dict} ${service} ${status} ${healthTestStatus}
61 # Test the significant attributes to see if this is a legit exception
62 ${exception}= Copy Dictionary ${dict}
63 Set To Dictionary ${exception} service=${service} status=${status} healthTestStatus=${healthTestStatus}
64 Dictionaries Should Be Equal ${dict} ${exception}
69 [Documentation] Given a list of column names and a list of dictionaries, map columname=value
70 [Arguments] ${columns} ${names} ${valuename}=value
71 ${dict}= Create Dictionary
72 ${collength}= Get Length ${columns}
73 ${namelength}= Get Length ${names}
74 :for ${index} in range 0 ${collength}
75 \ ${name}= Evaluate ${names}[${index}]
76 \ ${valued}= Evaluate ${columns}[${index}]
77 \ ${value}= Get From Dictionary ${valued} ${valueName}
78 \ Set To Dictionary ${dict} ${name} ${value}