*** Settings ***
Documentation The main interface for interacting with DCAE. It handles low level stuff like managing the http request library and DCAE required fields
Library RequestsLibrary
-Library UUID
+Library UUID
Library OperatingSystem
Library Collections
Resource global_properties.robot
*** Variables ***
${DCAE_HEALTH_CHECK_BODY} robot/assets/dcae/dcae_healthcheck.json
${DCAE_HEALTH_CHECK_PATH} /gui
+${DCAE_ENDPOINT} ${GLOBAL_DCAE_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DCAE_IP_ADDR}:${GLOBAL_DCAE_SERVER_PORT}
*** Keywords ***
Run DCAE Health Check
[Documentation] Runs a DCAE health check
${auth}= Create List ${GLOBAL_DCAE_USERNAME} ${GLOBAL_DCAE_PASSWORD}
- Log Creating session ${GLOBAL_DCAE_SERVER}
- ${session}= Create Session dcae ${GLOBAL_DCAE_SERVER} auth=${auth}
+ Log Creating session ${DCAE_ENDPOINT}
+ ${session}= Create Session dcae ${DCAE_ENDPOINT} auth=${auth}
${uuid}= Generate UUID
${data}= OperatingSystem.Get File ${DCAE_HEALTH_CHECK_BODY}
${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}
Log Received response from dcae ${resp.json()}
Should Be Equal As Strings ${resp.status_code} 200
Check DCAE Results ${resp.json()}
-
+
Check DCAE Results
- [Documentation] Parse DCAE JSON response and make sure all rows have healthTestStatus=GREEN
+ [Documentation] Parse DCAE JSON response and make sure all rows have healthTestStatus=GREEN (except for the exceptions ;-)
[Arguments] ${json}
@{rows}= Get From Dictionary ${json['returns']} rows
@{headers}= Get From Dictionary ${json['returns']} columns
-
+
# Retrieve column names from headers
${columns}= Create List
:for ${header} in @{headers}
- \ ${colName}= Get From Dictionary ${header} colName
+ \ ${colName}= Get From Dictionary ${header} colName
\ Append To List ${columns} ${colName}
-
- # Process each row making sure status=GREEN
+
+ # Process each row making sure status=GREEN
:for ${row} in @{rows}
\ ${cells}= Get From Dictionary ${row} cells
- \ ${dict}= Make A Dictionary ${cells} ${columns}
- \ Dictionary Should Contain Item ${dict} healthTestStatus GREEN
+ \ ${dict}= Make A Dictionary ${cells} ${columns}
+ \ Is DCAE Status Valid ${dict}
+
+Is DCAE Status Valid
+ [Arguments] ${dict}
+ # If it is GREEN we are done.
+ ${status} ${value}= Run Keyword And Ignore Error Dictionary Should Contain Item ${dict} healthTestStatus GREEN
+ Return From Keyword If '${status}' == 'PASS'
+
+ # Check for Exceptions
+ # Only 1 so far
+ ${status} ${value}= Run Keyword And Ignore Error Check For Exception ${dict} vm-controller UNDEPLOYED YELLOW
+ Return From Keyword If '${status}' == 'PASS'
+
+ # Status not GREEN or is not an exception
+ Fail Health check failed ${dict}
+
+Check for Exception
+ [Arguments] ${dict} ${service} ${status} ${healthTestStatus}
+ # Test the significant attributes to see if this is a legit exception
+ ${exception}= Copy Dictionary ${dict}
+ Set To Dictionary ${exception} service=${service} status=${status} healthTestStatus=${healthTestStatus}
+ Dictionaries Should Be Equal ${dict} ${exception}
+
+
-
Make A Dictionary
[Documentation] Given a list of column names and a list of dictionaries, map columname=value
[Arguments] ${columns} ${names} ${valuename}=value
${dict}= Create Dictionary
- ${collength}= Get Length ${columns}
- ${namelength}= Get Length ${names}
+ ${collength}= Get Length ${columns}
+ ${namelength}= Get Length ${names}
:for ${index} in range 0 ${collength}
\ ${name}= Evaluate ${names}[${index}]
\ ${valued}= Evaluate ${columns}[${index}]
\ ${value}= Get From Dictionary ${valued} ${valueName}
- \ Set To Dictionary ${dict} ${name} ${value}
- [Return] ${dict}
\ No newline at end of file
+ \ Set To Dictionary ${dict} ${name} ${value}
+ [Return] ${dict}
\ No newline at end of file