blob: 1c1ba44abea29ba7c38bf0dd71abe021f54e63c2 [file] [log] [blame]
*** 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 OperatingSystem
Library Collections
Resource global_properties.robot
*** Variables ***
${DCAE_HEALTH_CHECK_BODY} robot/assets/dcae/dcae_healthcheck.json
${DCAE_HEALTH_CHECK_PATH} /gui
*** 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}
${uuid}= Generate UUID
${data}= OperatingSystem.Get File ${DCAE_HEALTH_CHECK_BODY}
${headers}= Create Dictionary action=getTable Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${resp}= Put Request dcae ${DCAE_HEALTH_CHECK_PATH} data=${data} headers=${headers}
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
[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
\ Append To List ${columns} ${colName}
# 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
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}
: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}