*** Settings ***
Documentation     Tests the health of the POMBA containers: aai-context-builder, sdc-context-builder,
Documentation     network-discovery-micro-service, Context-Aggregator, pomba-kibana, pomba-elasticsearch,
Documentation     service-decomposition, sdnc-context-builder and network-discovery-context-builder.
Library    Collections
Library         String
Library 	      RequestsLibrary
Resource        global_properties.robot

*** Variables ***
${POMBA_PATH}         /
${POMBA_AAICB_PATH}   /aaicontextbuilder/health
${POMBA_SDCCB_PATH}   /sdccontextbuilder/health
${POMBA_NDCB_PATH}    /ndcontextbuilder/health
${POMBA_NDMS_PATH}   /health
${POMBA_KIBANA_PATH}   /
${POMBA_ELASTICSEARCH_PATH}   /
${POMBA_SERVICEDECOMPOSITION_PATH}   /service-decomposition/health
${POMBA_SDNCCTXBUILDER_PATH}   /sdnccontextbuilder/health
${POMBA_CONTEXTAGGREGATOR_PATH}   /health

${POMBA_AAICONTEXTBUILDER_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_AAI_CONTEXT_BUILDER_IP_ADDR}:${GLOBAL_POMBA_AAICONTEXTBUILDER_PORT}
${POMBA_SDCCONTEXTBUILDER_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_SDC_CONTEXT_BUILDER_IP_ADDR}:${GLOBAL_POMBA_SDCCONTEXTBUILDER_PORT}
${POMBA_NETWORKDISCCONTEXTBUILDER_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_NETWORK_DISC_CONTEXTBUILDER_IP_ADDR}:${GLOBAL_POMBA_NETWORKDISCCONTEXTBUILDER_PORT}
${POMBA_SERVICEDECOMPOSITION_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_SERVICE_DECOMPOSITION_IP_ADDR}:${GLOBAL_POMBA_SERVICEDECOMPOSITION_PORT}
${POMBA_NETWORKDISCOVERY_MICROSERVICE_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTPS}://${GLOBAL_INJECTED_POMBA_NETWORKDISCOVERY_MICROSERVICE_IP_ADDR}:${GLOBAL_POMBA_NETWORKDISCOVERY_MICROSERVICE_PORT}
${POMBA_KIBANA_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTPS}://${GLOBAL_INJECTED_POMBA_KIBANA_IP_ADDR}:${GLOBAL_POMBA_KIBANA_PORT}
${POMBA_ELASTICSEARCH_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_ELASTIC_SEARCH_IP_ADDR}:${GLOBAL_POMBA_ELASTICSEARCH_PORT}
${POMBA_SDNCCONTEXTBUILDER_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_SDNC_CTX_BUILDER_IP_ADDR}:${GLOBAL_POMBA_SDNCCXTBUILDER_PORT}
${POMBA_CONTEXTAGGREGATOR_ENDPOINT}    ${GLOBAL_POMBA_SERVER_PROTOCOL_HTTP}://${GLOBAL_INJECTED_POMBA_CONTEX_TAGGREGATOR_IP_ADDR}:${GLOBAL_POMBA_CONTEXTAGGREGATOR_PORT}

*** Keywords ***
Run Pomba Aai Context Builder Health Check
    [Documentation]   Tests Pomba Aai Context Builder interface
    ${resp}=    Run Pomba Aai Context Builder Get Request    ${POMBA_AAICB_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Aai Context Builder Get Request
    [Documentation]    Runs a Pomba Aai Context Builder request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_AAICONTEXTBUILDER_ENDPOINT}
    ${session}=    Create Session 	pomba-aaictxbuilder 	${POMBA_AAICONTEXTBUILDER_ENDPOINT}
    ${resp}= 	Get Request 	pomba-aaictxbuilder 	${data_path}
    Log    Received response from pomba-aaictxbuilder ${resp.text}
    [Return]    ${resp}

Run Pomba Sdc Context Builder Health Check
    [Documentation]   Tests Sdc Context Builder interface
    ${resp}=    Run Pomba Sdc Context Builder Get Request    ${POMBA_SDCCB_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Sdc Context Builder Get Request
    [Documentation]    Runs a Pomba Sdc Context Builder request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_SDCCONTEXTBUILDER_ENDPOINT}
    ${session}=    Create Session 	pomba-sdcctxbuilder 	${POMBA_SDCCONTEXTBUILDER_ENDPOINT}
    ${resp}= 	Get Request 	pomba-sdcctxbuilder 	${data_path}
    Log    Received response from pomba-sdcctxbuilder ${resp.text}
    [Return]    ${resp}

Run Pomba Network Discovery Context Builder Health Check
    [Documentation]   Tests a Pomba Network Discovery Context Builder interface
    ${resp}=    Run Pomba Network Discovery Context Builder Get Request    ${POMBA_NDCB_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Network Discovery Context Builder Get Request
    [Documentation]    Runs a Pomba Network Discovery Context Builder request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_NETWORKDISCCONTEXTBUILDER_ENDPOINT}
    ${session}=    Create Session 	pomba-networkdiscovery 	${POMBA_NETWORKDISCCONTEXTBUILDER_ENDPOINT}
    ${resp}= 	Get Request 	pomba-networkdiscovery 	${data_path}
    Log    Received response from pomba-networkdiscovery ${resp.text}
    [Return]    ${resp}

Run Pomba Service Decomposition Health Check
    [Documentation]   Tests Pomba Service Decomposition interface
    ${resp}=    Run Pomba Service Decomposition Get Request    ${POMBA_SERVICEDECOMPOSITION_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Service Decomposition Get Request
    [Documentation]    Runs a Pomba Service Decomposition request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_SERVICEDECOMPOSITION_ENDPOINT}
    ${session}=    Create Session 	pomba-servicedecomposition 	${POMBA_SERVICEDECOMPOSITION_ENDPOINT}
    ${resp}= 	Get Request 	pomba-servicedecomposition 	${data_path}
    Log    Received response from pomba-servicedecomposition ${resp.text}
    [Return]    ${resp}

Run Pomba Network Discovery MicroService Health Check
    [Documentation]   Tests Pomba Network Discovery MicroService interface
    ${resp}=    Run Pomba Network Discovery MicroService Get Request    ${POMBA_NDMS_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Network Discovery MicroService Get Request
    [Documentation]    Runs a Pomba Network Discovery MicroService request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_NETWORKDISCOVERY_MICROSERVICE_ENDPOINT}
    ${session}=    Create Session 	pomba-networkdiscovery 	${POMBA_NETWORKDISCOVERY_MICROSERVICE_ENDPOINT}
    ${resp}= 	Get Request 	pomba-networkdiscovery 	${data_path}
    Log    Received response from pomba-networkdiscovery ${resp.text}
    [Return]    ${resp}

Run Pomba Kibana Health Check
    [Documentation]   Tests Pomba Kibana interface
    ${resp}=    Run Pomba Kibana Get Request    ${POMBA_KIBANA_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Kibana Get Request
    [Documentation]    Runs a Pomba Kibana request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_KIBANA_ENDPOINT}
    ${session}=    Create Session 	pomba-kibana 	${POMBA_KIBANA_ENDPOINT}
    ${resp}= 	Get Request 	pomba-kibana 	${data_path}
    Log    Received response from pomba-kibana ${resp.text}
    [Return]    ${resp}

Run Pomba Elastic Search Health Check
    [Documentation]   Tests Pomba Elastic Search interface
    ${resp}=    Run Pomba Elastic Search Get Request    ${POMBA_ELASTICSEARCH_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Elastic Search Get Request
    [Documentation]    Runs a Pomba Elastic Search request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_ELASTICSEARCH_ENDPOINT}
    ${session}=    Create Session 	pomba-es 	${POMBA_ELASTICSEARCH_ENDPOINT}
    ${resp}= 	Get Request 	pomba-es 	${data_path}
    Log    Received response from pomba-es ${resp.text}
    [Return]    ${resp}

Run Pomba Sdnc Context Builder Health Check
    [Documentation]   Tests Pomba Sdnc Context Builder interface
    ${resp}=    Run Pomba Sdnc Context Builder Get Request    ${POMBA_SDNCCTXBUILDER_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Sdnc Context Builder Get Request
    [Documentation]    Runs a Pomba Sdnc Context Builder request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_SDNCCONTEXTBUILDER_ENDPOINT}
    ${session}=    Create Session 	pomba-sdncctxbuilder 	${POMBA_SDNCCONTEXTBUILDER_ENDPOINT}
    ${resp}= 	Get Request 	pomba-sdncctxbuilder 	${data_path}
    Log    Received response from pomba-sdncctxbuilder ${resp.text}
    [Return]    ${resp}

Run Pomba Context Aggregator Health Check
    [Documentation]   Tests Pomba Context-Aggregator interface
    ${resp}=    Run Pomba Context Aggregator Get Request    ${POMBA_CONTEXTAGGREGATOR_PATH}
    Should Be Equal As Strings 	${resp.status_code} 	200

Run Pomba Context Aggregator Get Request
    [Documentation]    Runs a Pomba Context Aggregator request
    [Arguments]    ${data_path}
    Log    Creating session ${POMBA_CONTEXTAGGREGATOR_ENDPOINT}
    ${session}=    Create Session 	pomba-contextaggregator 	${POMBA_CONTEXTAGGREGATOR_ENDPOINT}
    ${resp}= 	Get Request 	pomba-contextaggregator	${data_path}
    Log    Received response from pomba-contextaggregator ${resp.text}
    [Return]    ${resp}