Update the DCAE HC as per Lusheng
[testsuite.git] / robot / resources / dcae_interface.robot
1 *** Settings ***
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
4 Library           UUID
5 Library           OperatingSystem
6 Library           Collections
7 Resource          global_properties.robot
8
9 *** Variables ***
10 ${DCAE_HEALTH_CHECK_PATH}    /healthcheck
11 ${DCAE_ENDPOINT}     ${GLOBAL_DCAE_SERVER_PROTOCOL}://${GLOBAL_INJECTED_DCAE_IP_ADDR}:${GLOBAL_DCAE_SERVER_PORT}
12
13 *** Keywords ***
14 Run DCAE Health Check
15     [Documentation]    Runs a DCAE health check
16     ${auth}=  Create List  ${GLOBAL_DCAE_USERNAME}    ${GLOBAL_DCAE_PASSWORD}
17     Log    Creating session ${DCAE_ENDPOINT}
18     ${session}=    Create Session       dcae    ${DCAE_ENDPOINT}    auth=${auth}
19     ${uuid}=    Generate UUID
20     ${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}
21     ${resp}=    Get Request     dcae    ${DCAE_HEALTH_CHECK_PATH}     headers=${headers}
22     Log    Received response from dcae ${resp.json()}
23     Should Be Equal As Strings  ${resp.status_code}     200
24     Check DCAE Results    ${resp.json()}
25
26 Check DCAE Results
27     [Documentation]    Parse DCAE JSON response and make sure all rows have healthTestStatus=GREEN (except for the exceptions ;-)
28     [Arguments]    ${json}
29     ${service_names}=   Get DCAE Healthcheck Service Names
30     :for   ${service}   in   @{json}
31     \    ${sn}=   Get From DIctionary    ${service}   ServiceName
32     \    ${status}=   Get From Dictionary   ${service}   Status
33     \    Run Keyword If   '${status}'=='passing'   Remove Values From List   ${service_names}   ${sn}   
34     Should Be Empty    ${service_names}   Services failing healthcheck ${service_names}   
35     
36     
37 Get DCAE Healthcheck Service Names
38     [Documentation]    From Lusheng's email servaices that must be passing for DCAE to be healthy. Mayne grab from a config file?
39     ${service_names}=   Create List
40     Append To List    ${service_names}   cdap
41     Append To List    ${service_names}   cdap_broker
42     Append To List    ${service_names}   config_binding_service
43     Append To List    ${service_names}   deployment_handler
44     Append To List    ${service_names}   inventory
45     Append To List    ${service_names}   service_change_handler
46     Append To List    ${service_names}   policy_handler
47     Append To List    ${service_names}   platform_dockerhost
48     Append To List    ${service_names}   component_dockerhost
49     Append To List    ${service_names}   cloudify_manager
50     Append To List    ${service_names}   VES
51     Append To List    ${service_names}   TCA
52     Append To List    ${service_names}   Holmes
53     [Return]   ${service_names}
54