onap on kubernetes source files
[oom.git] / kubernetes / config / docker / init / src / config / robot / robot / resources / dcae_interface.robot
diff --git a/kubernetes/config/docker/init/src/config/robot/robot/resources/dcae_interface.robot b/kubernetes/config/docker/init/src/config/robot/robot/resources/dcae_interface.robot
new file mode 100644 (file)
index 0000000..1c1ba44
--- /dev/null
@@ -0,0 +1,57 @@
+*** 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}            
\ No newline at end of file