*** Settings ***
-Documentation Testing DCAE VES Listener with various event feeds from VoLTE, vDNS, vFW and cCPE use scenarios
-Library RequestsLibrary
+Documentation Run healthchecks for DCAE VES
+... Testing /eventListener/v7 and /eventListener/v7/eventBatch endpoints for DCEA VES v7.
+... Testing /eventListener/v5 and /eventListener/v5/eventBatch for DCEA VES v5 with various event feeds from VoLTE, vFW and PNF
+Library RequestsLibrary
Library OperatingSystem
Library Collections
Library DcaeLibrary
-Resource resources/dcae_keywords.robot
-Resource ../../common.robot
-Resource resources/dcae_properties.robot
-Test Setup Cleanup VES Events
+Resource ./resources/dcae_keywords.robot
+Test Teardown Cleanup VES Events
Suite Setup Run keywords VES Collector Suite Setup DMaaP Create sessions Create header
-Suite Teardown VES Collector Suite Shutdown DMaaP
-
-*** Variables ***
-${VESC_URL_HTTPS} https://%{VESC_IP}:8443
-${VESC_URL} http://%{VESC_IP}:8080
-${VES_ANY_EVENT_PATH} /eventListener/v5
-${VES_BATCH_EVENT_PATH} /eventListener/v5/eventBatch
-${VES_THROTTLE_STATE_EVENT_PATH} /eventListener/v5/clientThrottlingState
-${VES_ENDPOINT} /eventListener/v7
-${VES_VALID_JSON_V7} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
-${VES_INVALID_JSON_V7} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
-${EVENT_DATA_FILE} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json
-${EVENT_MEASURE_FILE} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json
-${EVENT_DATA_FILE_BAD} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json
-${EVENT_BATCH_DATA_FILE} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json
-${EVENT_THROTTLING_STATE_DATA_FILE} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json
-${EVENT_PNF_REGISTRATION} %{WORKSPACE}/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json
-
-#DCAE Health Check
-${CONFIG_BINDING_URL} http://localhost:8443
-${CB_HEALTHCHECK_PATH} /healthcheck
-${CB_SERVICE_COMPONENT_PATH} /service_component/
-${VES_Service_Name1} dcae-controller-ves-collector
-${VES_Service_Name2} ves-collector-not-exist
+Suite Teardown VES Collector Suite Shutdown DMaaP
*** Test Cases ***
-#No authorization tests
+#No authentication tests
VES Collector HTTP Health Check
[Tags] DCAE-VESC-R1
- [Documentation] Ves Collector Health Check
- ${uuid}= Generate UUID
- ${headers}= Create Dictionary Accept=*/* X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
- ${resp}= Get Request ${suite_dcae_vesc_url_session} /healthcheck headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
+ [Documentation] Run healthcheck
+ Run Healthcheck
Publish Single VES VNF Measurement Event API V7
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546015
- Should Be Equal As Strings ${ret} true
-
+ [Documentation] Post single event with valid data to /eventListener/v7 endpoint and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 202 ab305d54-85b4-a31b-7db2-fb6b9e546015
Publish Single VES VNF Measurement Event with wrong JSON
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 400 Response
- ${evtdata}= Get Data From File ${VES_INVALID_JSON_V7}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 400
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ [Documentation] Post single event with invalid data to /eventListener/v7 endpoint and expect 400 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_EVENTLISTENER_V7} ${VES_INVALID_JSON_V7} 400
Publish Single VES VNF Measurement Event with No Auth over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect ConnectionError
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${err_msg}= Run Keyword And Expect Error ConnectionError:* Publish Event To VES Collector ${VES_ENDPOINT} ${evtdata}
- Should Contain ${err_msg} Errno 111
- Log Recieved error message ${err_msg}
+ [Documentation] Post single event over HTTPS with authentication disabled and expect ConnectionError
+ @{err_content} Create List Errno 111
+ Send Request And Expect Error Publish Event To VES Collector ${https_basic_auth_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} ConnectionError:* @{err_content}
Publish Single VES VoLTE Fault Event
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546015
- Should Be Equal As Strings ${ret} true
+ [Documentation] Post single event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_ANY_EVENT_PATH} ${EVENT_DATA_FILE} 202 ab305d54-85b4-a31b-7db2-fb6b9e546015
Publish Single VES VNF Measurement Event API V5
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_MEASURE_FILE}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive 0b2b5790-3673-480a-a4bd-5a00b88e5af6
- Should Be Equal As Strings ${ret} true
+ [Documentation] Post single measurement event with valid data to /eventListener/v5 endpoint and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_ANY_EVENT_PATH} ${EVENT_MEASURE_FILE} 202 0b2b5790-3673-480a-a4bd-5a00b88e5af6
Publish VES VoLTE Fault Batch Events
[Tags] DCAE-VESC-R1
- [Documentation] Post batched events and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_BATCH_DATA_FILE}
- ${resp}= Publish Event To VES Collector No Auth ${VES_BATCH_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546025
- Should Be Equal As Strings ${ret} true
-
+ [Documentation] Post single event with valid data to /eventListener/v5/eventBatch endpoint and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_BATCH_EVENT_PATH} ${EVENT_BATCH_DATA_FILE} 202 ab305d54-85b4-a31b-7db2-fb6b9e546025
Publish VES Event With Invalid Method
[Tags] DCAE-VESC-R1
- [Documentation] Use invalid Put instead of Post method to expect 405 response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE}
+ [Documentation] Use invalid Put instead of Post method to expect 405 Response Status Code
Log Send HTTP Request with invalid method Put instead of Post
- ${resp}= Publish Event To VES Collector With Put Method No Auth ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 405
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ Send Request And Validate Response Publish Event To VES Collector With Put Method ${http_session} ${VES_ANY_EVENT_PATH} ${EVENT_DATA_FILE} 405
Publish VES Event With Invalid URL Path
[Tags] DCAE-VESC-R1
- [Documentation] Use invalid url path to expect 404 response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE}
+ [Documentation] Post single event to invalid url path and expect 404 Response Status Code
Log Send HTTP Request with invalid /listener/v5/ instead of /eventListener/v5 path
- ${resp}= Publish Event To VES Collector No Auth /listener/v5/ ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 404
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} /listener/v5/ ${EVENT_DATA_FILE} 404
Publish PNF Registration Event
[Tags] DCAE-VESC-R1
- [Documentation] Post PNF registration event and expect 200 Response
- ${evtdata}= Get Data From File ${EVENT_PNF_REGISTRATION}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive QTFCOC540002E-reg
- Should Be Equal As Strings ${ret} true
-
+ [Documentation] Post PNF registration event and expect 200 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_ANY_EVENT_PATH} ${EVENT_PNF_REGISTRATION} 202 QTFCOC540002E-reg
# Auth by certificate and basic auth username / password
[Tags] DCAE-VESC-R1
[Documentation] Enable VESC Https and Authentication and Run Health Check
Enable VESC with certBasicAuth
+ Run Healthcheck
+
+Healthcheck with Outdated Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Run healthcheck with outdated cert
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=*/* X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
- ${resp}= Get Request ${suite_dcae_vesc_url_session} /healthcheck headers=${headers}
- Should Be Equal As Strings ${resp.status_code} 200
-
+ ${err_msg}= Run Keyword And Expect Error SSLError:* Get Request ${https_outdated_cert_session} /healthcheck headers=${headers}
+ Should Contain ${err_msg} bad handshake
+ Should Contain ${err_msg} certificate unknown
+ Log Recieved error message ${err_msg}
Publish Single VES Fault Event Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE}
+ [Documentation] Post single event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
Log Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD}
- ${resp}= Publish Event To VES Collector ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546015
- Should Be Equal As Strings ${ret} true
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_ANY_EVENT_PATH} ${EVENT_DATA_FILE} 202 ab305d54-85b4-a31b-7db2-fb6b9e546015
Publish Single VES Measurement Event Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_MEASURE_FILE}
- ${resp}= Publish Event To VES Collector ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive 0b2b5790-3673-480a-a4bd-5a00b88e5af6
- Should Be Equal As Strings ${ret} true
+ [Documentation] Post single measurement event with valid data to /eventListener/v5 endpoint over HTTPS and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_ANY_EVENT_PATH} ${EVENT_MEASURE_FILE} 202 0b2b5790-3673-480a-a4bd-5a00b88e5af6
Publish VES Fault Batch Events Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post batched events and expect 202 Response
- ${evtdata}= Get Data From File ${EVENT_BATCH_DATA_FILE}
- ${resp}= Publish Event To VES Collector ${VES_BATCH_EVENT_PATH} ${evtdata}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546025
- Should Be Equal As Strings ${ret} true
-
+ [Documentation] Post single event with valid data to /eventListener/v5/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_BATCH_EVENT_PATH} ${EVENT_BATCH_DATA_FILE} 202 ab305d54-85b4-a31b-7db2-fb6b9e546025
Publish VES Event With Invalid URL Path HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Use invalid url path to expect 404 response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE}
+ [Documentation] Post single event to invalid url path over HTTPS and expect 404 response Status Code
Log Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path
- ${resp}= Publish Event To VES Collector /eventlistener/v5 ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 404
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} /eventlistener/v5 ${EVENT_DATA_FILE} 404
Publish Single VES VNF Measurement Event over HTTP
[Tags] DCAE-VESC-R1
- [Documentation] Post single event over HTTP and expect 400 Response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector No Auth ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 400
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
-
+ [Documentation] Post single event over HTTP with authentication enabled and expect 400 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${http_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 400
Publish Single VES VNF Measurement Event with certBasicAuth over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 Response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546015
- Should Be Equal As Strings ${ret} true
+ [Documentation] Post single event with valid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 202 ab305d54-85b4-a31b-7db2-fb6b9e546015
Publish Single VES VNF Measurement Event over HTTPS with wrong JSON
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 400 Response
- ${evtdata}= Get Data From File ${VES_INVALID_JSON_V7}
- ${resp}= Publish Event To VES Collector ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 400
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ [Documentation] Post single event with invalid data and valid username/password to /eventListener/v7 endpoint over HTTPS and expect 400 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_EVENTLISTENER_V7} ${VES_INVALID_JSON_V7} 400
Publish Single VES VNF Measurement Event With Wrong Auth
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 401 response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector With Wrong Auth ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 401
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ [Documentation] Post single event with valid data and invalid username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_wrong_auth_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 401
Publish Single VES VNF Measurement Event With Cert
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 202 response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector With Cert ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 202
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546015
- Should Be Equal As Strings ${ret} true
+ [Documentation] Post single event with valid data and valid certificate to /eventListener/v7 endpoint over HTTPS and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_valid_cert_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 202 ab305d54-85b4-a31b-7db2-fb6b9e546015
Publish Single VES VNF Measurement Event With Wrong Cert
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect SSLError with bad handshake
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${err_msg}= Run Keyword And Expect Error SSLError:* Publish Event To VES Collector With Wrong Cert ${VES_ENDPOINT} ${evtdata}
- Should Contain ${err_msg} bad handshake
- Should Contain ${err_msg} certificate unknown
- Log Recieved error message ${err_msg}
+ [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+ @{err_content} Create List bad handshake certificate unknown
+ Send Request And Expect Error Publish Event To VES Collector ${https_invalid_cert_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} SSLError:* @{err_content}
+
+Publish Single VES VNF Measurement Event With Outdated Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake
+ @{err_content} Create List bad handshake certificate unknown
+ Send Request And Expect Error Publish Event To VES Collector ${https_outdated_cert_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} SSLError:* @{err_content}
Publish Single VES VNF Measurement Event Without Auth And Cert
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 401 response
- ${evtdata}= Get Data From File ${VES_VALID_JSON_V7}
- ${resp}= Publish Event To VES Collector Without Auth And Cert ${VES_ENDPOINT} ${evtdata}
- Log Receive HTTPS Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 401
- ${isEmpty}= Is Json Empty ${resp}
- Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ [Documentation] Post single event with valid data and without certificate or username/password to /eventListener/v7 endpoint over HTTPS and expect 401 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_no_cert_no_auth_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} 401
+
+Publish V7 Batch Event with certBasicAuth over HTTPS
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and valid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_basic_auth_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} 202 Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch Event With Wrong Auth
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and invalid username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_wrong_auth_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} 401
+
+Publish V7 Batch Event With Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and valid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect 202 Response
+ Send Request And Validate Response Publish Event To VES Collector ${https_valid_cert_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} 202 Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion
+
+Publish V7 Batch With Wrong Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+ @{err_content} Create List bad handshake certificate unknown
+ Send Request And Expect Error Publish Event To VES Collector ${https_invalid_cert_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} SSLError:* @{err_content}
+
+Publish V7 Batch Event With Outdated Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake
+ @{err_content} Create List bad handshake certificate unknown
+ Send Request And Expect Error Publish Event To VES Collector ${https_outdated_cert_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} SSLError:* @{err_content}
+
+Publish V7 Batch Event Without Auth And Cert
+ [Tags] DCAE-VESC-R1
+ [Documentation] Post single event with valid data and without certificate or username/password to /eventListener/v7/eventBatch endpoint over HTTPS and expect 401 Response Status Code
+ Send Request And Validate Response Publish Event To VES Collector ${https_no_cert_no_auth_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} 401
Library OperatingSystem
Library Collections
Variables ../resources/DcaeVariables.py
+Resource ../../../common.robot
Resource ../resources/dcae_properties.robot
-*** Variables ***
-${DCAE_HEALTH_CHECK_BODY} %{WORKSPACE}/tests/dcae/testcases/assets/json_events/dcae_healthcheck.json
-
-
*** Keywords ***
Create sessions
[Documentation] Create all required sessions
- Create Session dcae_vesc_url ${VESC_URL}
- Set Suite Variable ${suite_dcae_vesc_url_session} dcae_vesc_url
${auth}= Create List ${VESC_HTTPS_USER} ${VESC_HTTPS_PD}
- Create Session dcae_vesc_url_https ${VESC_URL_HTTPS} auth=${auth} disable_warnings=1
- Set Suite Variable ${suite_dcae_vesc_url_https_session} dcae_vesc_url_https
${wrong_auth}= Create List ${VESC_HTTPS_WRONG_USER} ${VESC_HTTPS_WRONG_PD}
- Create Session dcae_vesc_url_https_wrong_auth ${VESC_URL_HTTPS} auth=${wrong_auth} disable_warnings=1
- Set Suite Variable ${suite_dcae_vesc_url_https_wrong_auth_session} dcae_vesc_url_https_wrong_auth
${certs}= Create List ${VESC_ROOTCA_CERT} ${VESC_ROOTCA_KEY}
- Create Client Cert Session dcae_vesc_url_https_cert ${VESC_URL_HTTPS} client_certs=${certs} disable_warnings=1
- Set Suite Variable ${suite_dcae_vesc_url_https_cert_session} dcae_vesc_url_https_cert
${wrong_certs}= Create List ${VESC_WRONG_CERT} ${VESC_WRONG_KEY}
+ ${outdated_certs}= Create List ${VESC_OUTDATED_CERT} ${VESC_OUTDATED_KEY}
+ Create Session dcae_vesc_url ${VESC_URL}
+ Set Suite Variable ${http_session} dcae_vesc_url
+ Create Session dcae_vesc_url_https ${VESC_URL_HTTPS} auth=${auth} disable_warnings=1
+ Set Suite Variable ${https_basic_auth_session} dcae_vesc_url_https
+ Create Session dcae_vesc_url_https_wrong_auth ${VESC_URL_HTTPS} auth=${wrong_auth} disable_warnings=1
+ Set Suite Variable ${https_wrong_auth_session} dcae_vesc_url_https_wrong_auth
+ Create Client Cert Session dcae_vesc_url_https_cert ${VESC_URL_HTTPS} client_certs=${certs} disable_warnings=1
+ Set Suite Variable ${https_valid_cert_session} dcae_vesc_url_https_cert
Create Client Cert Session dcae_vesc_url_https_wrong_cert ${VESC_URL_HTTPS} client_certs=${wrong_certs} disable_warnings=1 verify=${False}
- Set Suite Variable ${suite_dcae_vesc_url_https_wrong_cert_session} dcae_vesc_url_https_wrong_cert
+ Set Suite Variable ${https_invalid_cert_session} dcae_vesc_url_https_wrong_cert
+ Create Client Cert Session dcae_vesc_url_https_outdated_cert ${VESC_URL_HTTPS} client_certs=${outdated_certs} disable_warnings=1 verify=${False}
+ Set Suite Variable ${https_outdated_cert_session} dcae_vesc_url_https_outdated_cert
Create Session dcae_vesc_url_https_wo_auth ${VESC_URL_HTTPS} disable_warnings=1
- Set Suite Variable ${suite_dcae_vesc_url_https_wo_auth_session} dcae_vesc_url_https_wo_auth
+ Set Suite Variable ${https_no_cert_no_auth_session} dcae_vesc_url_https_wo_auth
Create header
${headers}= Create Dictionary Content-Type=application/json
Get DCAE Nodes
[Documentation] Get DCAE Nodes from Consul Catalog
- #Log Creating session ${GLOBAL_DCAE_CONSUL_URL}
${session}= Create Session dcae ${GLOBAL_DCAE_CONSUL_URL}
${uuid}= Generate UUID
${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-Consul-Token=abcd1234 X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
${len}= Get Length ${StatusList}
Should Not Be Equal As Integers ${len} 0
DCAE Check Health Status ${NodeName} ${StatusList[0]} Serf Health Status
- #Run Keyword if ${len} > 1 DCAE Check Health Status ${NodeName} ${StatusList[1]} Serf Health Status
DCAE Check Health Status
[Arguments] ${NodeName} ${ItemStatus} ${CheckType}
${resp}= Get Request dcae-service-component ${urlpath}
[Return] ${resp}
-Publish Event To VES Collector No Auth
- [Documentation] Send an event to VES Collector
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
-
Publish Event To VES Collector
[Documentation] Send an event to VES Collector
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_https_session} ${evtpath} data=${evtdata} headers=${suite_headers}
+ [Arguments] ${session} ${evtpath} ${evtdata}
+ ${resp}= Post Request ${session} ${evtpath} data=${evtdata} headers=${suite_headers}
[Return] ${resp}
Publish Event To VES Collector With Put Method
[Documentation] Send an event to VES Collector
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Put Request ${suite_dcae_vesc_url_https_session} ${evtpath} data=${evtdata} headers=${suite_headers}
+ [Arguments] ${session} ${evtpath} ${evtdata}
+ ${resp}= Put Request ${session} ${evtpath} data=${evtdata} headers=${suite_headers}
[Return] ${resp}
-Publish Event To VES Collector With Put Method No Auth
- [Documentation] Send an event to VES Collector
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Put Request ${suite_dcae_vesc_url_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
-
-Publish Event To VES Collector With Wrong Auth
- [Documentation] Send an event to VES Collector by session with wrong auth
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_https_wrong_auth_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
-
-Publish Event To VES Collector With Cert
- [Documentation] Send an event to VES Collector by session with certs
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_https_cert_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
-
-Publish Event To VES Collector With Wrong Cert
- [Documentation] Send an event to VES Collector by session with wrong certs
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_https_wrong_cert_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
-
-Publish Event To VES Collector Without Auth And Cert
- [Documentation] Send an event to VES Collector by session without Auth and Cert
- [Arguments] ${evtpath} ${evtdata}
- ${resp}= Post Request ${suite_dcae_vesc_url_https_wo_auth_session} ${evtpath} data=${evtdata} headers=${suite_headers}
- [Return] ${resp}
+Send Request And Validate Response
+ [Documentation] Post singel event to passed url with passed data and validate received response
+ [Arguments] ${keyword} ${session} ${evtpath} ${evtjson} ${resp_code} ${msg_code}=None
+ ${evtdata}= Get Data From File ${evtjson}
+ ${resp}= Run Keyword ${keyword} ${session} ${evtpath} ${evtdata}
+ Log Receive HTTPS Status code ${resp.status_code}
+ Should Be Equal As Strings ${resp.status_code} ${resp_code}
+ ${isEmpty}= Is Json Empty ${resp}
+ Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+ Run Keyword If '${msg_code}' != 'None' Check Whether Message Received ${msg_code}
+
+Check Whether Message Received
+ [Documentation] Validare if message has been received
+ [Arguments] ${msg_code}
+ ${ret}= DMaaP Message Receive ${msg_code}
+ Should Be Equal As Strings ${ret} true
+
+Send Request And Expect Error
+ [Documentation] Post singel event to passed url with passed data and expect error
+ [Arguments] ${keyword} ${session} ${evtpath} ${evtjson} ${error_type} @{error_content}
+ ${evtdata}= Get Data From File ${evtjson}
+ ${err_msg}= Run Keyword And Expect Error ${error_type} ${keyword} ${session} ${evtpath} ${evtdata}
+ :FOR ${content} IN @{error_content}
+ \ Should Contain ${err_msg} ${content}
+ Log Recieved error message ${err_msg}
+
+Run Healthcheck
+ [Documentation] Run Healthcheck
+ ${uuid}= Generate UUID
+ ${headers}= Create Dictionary Accept=*/* X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID}
+ ${resp}= Get Request ${http_session} /healthcheck headers=${headers}
+ Should Be Equal As Strings ${resp.status_code} 200