aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/dcaegen2/testcases/assets/certs/rootCA.crt31
-rw-r--r--tests/dcaegen2/testcases/assets/certs/rootCA.key54
-rw-r--r--tests/dcaegen2/testcases/assets/certs/rootCAdec.key51
-rw-r--r--tests/dcaegen2/testcases/assets/certs/wrong.crt32
-rw-r--r--tests/dcaegen2/testcases/assets/certs/wrong.key51
-rw-r--r--tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json34
-rw-r--r--tests/dcaegen2/testcases/assets/json_events/ves7_valid.json34
-rw-r--r--tests/dcaegen2/testcases/dcae_ves.robot227
-rw-r--r--tests/dcaegen2/testcases/resources/DMaaP.py24
-rw-r--r--tests/dcaegen2/testcases/resources/DcaeLibrary.py7
-rwxr-xr-xtests/dcaegen2/testcases/resources/collector.properties65
-rw-r--r--tests/dcaegen2/testcases/resources/dcae_keywords.robot60
-rw-r--r--tests/dcaegen2/testcases/resources/dcae_properties.robot6
-rwxr-xr-xtests/dcaegen2/testcases/resources/vesc_enable_https_auth.sh10
-rw-r--r--tests/policy/apex-pdp/apex-pdp-test.robot2
-rw-r--r--tests/policy/apex-pdp/data/pdp_update.json102
-rw-r--r--tests/policy/pap/data/create.group.request.json7
-rw-r--r--tests/policy/pap/data/deploy.group.request.json19
-rw-r--r--tests/policy/pap/pap-test.robot13
19 files changed, 584 insertions, 245 deletions
diff --git a/tests/dcaegen2/testcases/assets/certs/rootCA.crt b/tests/dcaegen2/testcases/assets/certs/rootCA.crt
new file mode 100644
index 00000000..6a869ffc
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/rootCA.crt
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIUHt/v/SBbEGqP7K3veoJTDUgmiG4wDQYJKoZIhvcNAQEL
+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0xODExMDcwODU5MDRaFw0yMTA4
+MjcwODU5MDRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
+HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC+yIztigSbID4dT33lEc+UF69gKpgdD0o7/9nn3Qey
+ZrHExdNdF9RFnEReswLe64ZEL8BwBaPzveAPYzk7jN6J1LS3vfTDkGnzNXVyokcT
+rGL4xIGAFe13ZBj1xTlxBojRuJsAJ2n2ihnk2pcQa+QCOy7HA7iORVrrf4hzUthH
+ccvVFY5Z17sNLtTCrso9P9xIkMq4E+8GS7ufTZIUVSi6oruSOlhD0K0w/aeKwPjB
+HTk5o8ymhc/HSOcxVbUe+fkcsK8izHLToPT4lCAPCrsveHb6eIQzd+yzdgCSdOfL
+sCoSZP7s56DkmaPNxk8Ua5VnunTKqGOSmTIET+hwRTKW5lCyJGWNIML99rWkp4E+
+TXaSMyQ86S1ffm2qsBwHuNYbTc6KzjeN0Gr54+ApageVIpOM43bPEYd5BLM3StgV
+5GdLMH5ndX30zMoIvlgF7olcmdORdA7WgFRAmivN4fn66f6Kie6lvX2FTgjFlArb
+abHFLjiqzW4XXcS7SV+opnd67stZAbdkLx+nOZjjJZDmpI5rvh1eZOz0hL9gkbi0
+yYTHXmpkfJoikn2FeCZHrqHXbC5FkDeR0zDEUHC6o7YZvQ9h1yogWRGa6/OZU8Ni
+h3hc6ZbVWGWGvG7tX6I5ft5y5GJgwkqOqcG43UCw/Gz2u7mDi0VoNw+PhFIQG94J
+VQIDAQABo1MwUTAdBgNVHQ4EFgQUUTgeHVFkmRuXF3IL3eR1nFM1TQowHwYDVR0j
+BBgwFoAUUTgeHVFkmRuXF3IL3eR1nFM1TQowDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQsFAAOCAgEAqnpeSRF8bp4GKwnqU5HSg3uB5BbmfB3YF2D2NIVxYGfK
+Z4KOY6Iea5sxMUEACfWQrI50GBy3J/Wgw2wBMBcKSLXa0VF7WAY61B6VPKVrKBPo
+hVdSiWQ+UuwMbV00DPub3myB0rLYLagHrdZ0y9HHpDLQrqW+LR+lEbxckhrVmUsy
+wO2d4AmdLCnjqUUVG5xktmpq2Q5aEPkNhQPJEggn9hFlIybklSyRMoWyK36KUo5F
+szEt0teI+T4Q6lqJTiVrV3N5w9fNlcJ4ye5uTFrMwBjMS4I0kId2PHfv6KZ+LUQc
+4fu22RtNtFmcIfNAxaYyNb53EmcsDLf/v5WM/ZzietU1p0UHzxECdSTFt7cV1Ldt
+yFjbWkyZ4Jdn+aMadxpUdjT/Egm31hovE+KPbZUdd9xNEbQ+JZc/kx2Cuyxw1c8a
+UcFAxwPzwqU8+LpHLiXx6rZrGuZ7Nc8RpgR4ylHbyRr2ynJgi66QPyp6HhwvBEgK
+ig+8qUaczUGlSbssMN11tJ235/j6FFn+V8yp3UJEU7ax7epQ9YMyiw3maY+x1L0Z
+ZOXrZCkXCf1LQ3x52e1gvfGqYCBSxY217+bNNieQe3RsxPwaGd/KVv5C62GzIVG+
+r1k7gCv3gIHk8kTVeHpv22qvqrIT6lnGpUgJTAPzvtb+gZn/ByrvGHs5AnZkOkk=
+-----END CERTIFICATE-----
diff --git a/tests/dcaegen2/testcases/assets/certs/rootCA.key b/tests/dcaegen2/testcases/assets/certs/rootCA.key
new file mode 100644
index 00000000..08347661
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/rootCA.key
@@ -0,0 +1,54 @@
+-----BEGIN RSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,00244E4EB5B0693C
+
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/dcaegen2/testcases/assets/certs/rootCAdec.key b/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
new file mode 100644
index 00000000..e33b7e34
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+-----END RSA PRIVATE KEY-----
diff --git a/tests/dcaegen2/testcases/assets/certs/wrong.crt b/tests/dcaegen2/testcases/assets/certs/wrong.crt
new file mode 100644
index 00000000..5a82cd09
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/wrong.crt
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIUdRPd83cfkwo+IApq1ZVxHiBwVTwwDQYJKoZIhvcNAQEL
+BQAwWTELMAkGA1UEBhMCUEwxCzAJBgNVBAgMAkRMMRAwDgYDVQQHDAdXcm9jbGF3
+MQ0wCwYDVQQKDARyb290MQ0wCwYDVQQLDARyb290MQ0wCwYDVQQDDARyb290MB4X
+DTE5MTEwNTExNDEyMloXDTIyMDgyNTExNDEyMlowWTELMAkGA1UEBhMCUEwxCzAJ
+BgNVBAgMAkRMMRAwDgYDVQQHDAdXcm9jbGF3MQ0wCwYDVQQKDARyb290MQ0wCwYD
+VQQLDARyb290MQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEA3WLxGCL/jE4XFONHk7tUbYgCYegBw3cNNAWB0L07swHTVjRT9KIA
+rq+zH3z/xKP8L9Uib/ytZd0U/Z3lHmBHh0h2XYyj0nmCnDAO5YGTisKdC5zXGBN9
+Mbvixghqioz0lTbaL6cCWk0lfD/Da4lJiBdTU6gzqZJmrBdnxQapKxUjEKVdXdre
+kL9SCaQ/4AmiI1D18E+RtyZ6h0aCyK6utrCx0JZfaXNAJ2jMzSb5soORQyoIOKGo
+wRm1Qe1B0DDn67LQa/yN4cXADCehhdBNQKZbSSz834QRuN0qajhx9OFMUSLbNfU1
+atFzNB6TtjdpWkGZCGLUew6sMC2nh98dsKmQHBA4PK/fg9/cXGpVkyGfKn72UMU2
+mx5F90MzER1P6K8qa49yU60oyFPRPtZsWTsM3TNZzOJyIY0l1PBQzwAnp2futIW/
+joUD6gukeTQgCKI8O/0RFZbVrFHG3c5iYyNdRC6O90c68l8+XepznmWESgrq0KNB
+iD45DF+GnW+E/HK1bjhhucaXiySt21yscmUY9MdQc1GH4djyR4zYpFw7chtQ7bwh
+MjO3Tmlf7TSz7oo8BIS1pKGOt0TQnTUzK0JcTjnlWSAz29q2jCDwsavCAyKWonW3
+0QakoqBaKu09iyMykp1Ex9KqBW8akPd1nspM/dIj+t2tsbPNs15z5ckCAwEAAaNT
+MFEwHQYDVR0OBBYEFBzzwlUoL0DoI4Er6XnNFtN+Kr80MB8GA1UdIwQYMBaAFBzz
+wlUoL0DoI4Er6XnNFtN+Kr80MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
+BQADggIBAMfmKx6lgMkwDzX4sgfXicj0A7xN68YbabQo5e+3AlxDPkhZwArMnIWf
++Jb4VANAiP4fTNGbovuSGwgq2yiMPJxJM1dBEwv4hAXOFF1RK1JdjcTliXtB7Ubo
+dBi4fEyDfCWjZm4/P8qNWH3yUjoIaxSjszdv9Ebt1wUqsRU+NtM25nd06oaGwUtq
+OB9hV/qdGlJqmRToGhCAnxWRFxu4HywXGimM9vqxlcqSM6gjCvua+iUcd59Qlxk8
+KWktVNKcWgJlL8hVGULDbwJtZJvhTDqou/F5qQAAEa5YNU3zBgznv2aZQZQhQssB
+LQiTa9f+0e0ySGcBwEykTg3QpAUBaL40HlLGR4kpsRv9FyV/YrrTRI9kqAEM1FNh
+lBi2ll47qchSBH0KRSmnt8QzfhUDWReNp2gvYSu3HVGxUu7dKGDm4tBI1ts+RLAq
+9yu29Z+Db0ty7Q/PQ6jjeDCot+JNHWfBQ4S70W6CN1lo7uCwq7tnLLYL6/+Cqe9O
+9A+++vkeT0ai95u0+3PSzUkWgCQ+qd3XFlV7JeEWbHV+db/zdIRk07vbRUs+MVNY
+NN6BsxUsMMVm3cG5TpMeG7+kCEHwH0qXO8Ycj6EVB9GyLPGWQjDTenSUByP82Pbp
+3fZkv3l/vszkaqL3f3lLZkDYh9r1X/TYbTjLkYQUHiobryBplBTy
+-----END CERTIFICATE-----
diff --git a/tests/dcaegen2/testcases/assets/certs/wrong.key b/tests/dcaegen2/testcases/assets/certs/wrong.key
new file mode 100644
index 00000000..ba2a01e5
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/certs/wrong.key
@@ -0,0 +1,51 @@
+-----BEGIN RSA PRIVATE KEY-----
+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
+foKMQQKCAQBdT5VL8xxjbw2ZqMGfIkVU1InYBZgPPdPx1GwcKCbgQ+3jDGOOcGB/
+uWks3SexJR6L3SR0dqfiE+4Q9LCorfXd2MnWQpWdv4+FPlJ2tWwuJ2L9spWm63xl
+M6wqNIFmSuFw+nmWfdlJu92uy1K2z85mU1PFRbJGnu28jvuT0i5GA72qJUik+N7i
+r2sdO8LwyacaMF+l+8mtgO1rbmpWhBZex+CV7+4QCcz7inO7Bnu1f28xoyzUA/rr
+RKWfMOOr/yKRiaTQpdySPZehyyMfp+dH5iGVEWcdCXCl/oaU3izflmZN9JYlk5Gp
+Qb6l3iHxx7TE2e5hL78dp9M5OuxekB3RAoIBAQDOYRP9alUy+32g/jwJfaSg2BR9
+1uOSDaDRw9IHM5EUyWBF4ehgSVmy32WAIfCVXdrC8RUPf8n4aNk6k3N7Mhczm41m
+4KrUiDcpA+A7j51MU79yXdaGJ+e9bMR4QqadQYmHknbjDFJAQEnWZvWQxBP+CJDZ
+2mhV78swBGJK+W8zUIHBbo+SUCF6KUH/1fBvVxVlzwFsSrk2niyfyIGbPaEpriPL
+gCvxsZR3dH4wqVBythBMy+pdL0BWKtxNHR/UkXPpLqtD/p4XXReJjpW7ImuFMjti
+B//8aludyEJo+TAiTzDrSOD1pxPtQqTiLBhZlsjD9QNfE9wsRM0SnvzpmMCs
+-----END RSA PRIVATE KEY-----
diff --git a/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json b/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
new file mode 100644
index 00000000..74c0a92f
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/json_events/ves7_invalid.json
@@ -0,0 +1,34 @@
+{
+ "event": {
+ "commonEventHeader": {
+ "version": "4.0.1",
+ "vesEventListenerVersion": "30.0.1",
+ "domain": "fault",
+ "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
+ "eventId": "fault0000245",
+ "sequence": 1,
+ "priority": "High",
+ "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+ "reportingEntityName": "ibcx0001vm002oam001",
+ "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+ "sourceName": "scfx0001vm002cap001",
+ "nfVendorName": "Ericsson",
+ "nfNamingCode": "scfx",
+ "nfcNamingCode": "ssc",
+ "startEpochMicrosec": 1413378172000000,
+ "lastEpochMicrosec": 1413378172000000,
+ "timeZoneOffset": "UTC-05:30"
+ },
+ "faultFields": {
+ "faultFieldsVersion": "4.0",
+ "alarmCondition": "PilotNumberPoolExhaustion",
+ "eventSourceType": "other",
+ "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
+ "eventSeverity": "CRITICAL",
+ "vfStatus": "Active",
+ "alarmAdditionalInformation": {
+ "PilotNumberPoolSize": "1000"
+ }
+ }
+ }
+}
diff --git a/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json b/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
new file mode 100644
index 00000000..aabefd5c
--- /dev/null
+++ b/tests/dcaegen2/testcases/assets/json_events/ves7_valid.json
@@ -0,0 +1,34 @@
+{
+ "event": {
+ "commonEventHeader": {
+ "version": "4.0.1",
+ "vesEventListenerVersion": "7.0.1",
+ "domain": "fault",
+ "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
+ "eventId": "ab305d54-85b4-a31b-7db2-fb6b9e546015",
+ "sequence": 1,
+ "priority": "High",
+ "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
+ "reportingEntityName": "ibcx0001vm002oam001",
+ "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
+ "sourceName": "scfx0001vm002cap001",
+ "nfVendorName": "Ericsson",
+ "nfNamingCode": "scfx",
+ "nfcNamingCode": "ssc",
+ "startEpochMicrosec": 1413378172000000,
+ "lastEpochMicrosec": 1413378172000000,
+ "timeZoneOffset": "UTC-05:30"
+ },
+ "faultFields": {
+ "faultFieldsVersion": "4.0",
+ "alarmCondition": "PilotNumberPoolExhaustion",
+ "eventSourceType": "other",
+ "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
+ "eventSeverity": "CRITICAL",
+ "vfStatus": "Active",
+ "alarmAdditionalInformation": {
+ "PilotNumberPoolSize": "1000"
+ }
+ }
+ }
+}
diff --git a/tests/dcaegen2/testcases/dcae_ves.robot b/tests/dcaegen2/testcases/dcae_ves.robot
index f457f2ce..c035423d 100644
--- a/tests/dcaegen2/testcases/dcae_ves.robot
+++ b/tests/dcaegen2/testcases/dcae_ves.robot
@@ -1,21 +1,25 @@
*** Settings ***
Documentation Testing DCAE VES Listener with various event feeds from VoLTE, vDNS, vFW and cCPE use scenarios
-Library RequestsLibrary
+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
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
+${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
@@ -31,33 +35,67 @@ ${VES_Service_Name1} dcae-controller-ves-collector
${VES_Service_Name2} ves-collector-not-exist
*** Test Cases ***
-VES Collector Health Check
+
+#No authorization 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
+ Should Be Equal As Strings ${resp.status_code} 200
+
+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
+
+
+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()}
+
+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}
Publish Single VES VoLTE Fault Event
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 200 Response
+ [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} 200
+ 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
-Publish Single VES VNF Measurement Event
+Publish Single VES VNF Measurement Event API V5
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 200 Response
+ [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} 200
+ 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
@@ -65,25 +103,17 @@ Publish Single VES VNF Measurement Event
Publish VES VoLTE Fault Batch Events
[Tags] DCAE-VESC-R1
- [Documentation] Post batched events and expect 200 Response
+ [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}
- Should Be Equal As Strings ${resp.status_code} 200
- #${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546016
- ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546025
- Should Be Equal As Strings ${ret} true
-
-Publish Single VES VoLTE Fault Event With Bad Data
- [Tags] DCAE-VESC-R1
- [Documentation] Run with JSON Envent with missing comma to expect 400 response
- ${evtdata}= Get Data From File ${EVENT_DATA_FILE_BAD}
- Log Send HTTP Request with invalid Json Event Data
- ${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} 400
+ 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
+
+
Publish VES Event With Invalid Method
[Tags] DCAE-VESC-R1
[Documentation] Use invalid Put instead of Post method to expect 405 response
@@ -91,8 +121,10 @@ Publish VES Event With Invalid Method
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} 404
-
+ Should Be Equal As Strings ${resp.status_code} 405
+ ${isEmpty}= Is Json Empty ${resp}
+ Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+
Publish VES Event With Invalid URL Path
[Tags] DCAE-VESC-R1
[Documentation] Use invalid url path to expect 404 response
@@ -100,39 +132,55 @@ Publish VES Event With Invalid URL Path
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
-
-#Enable VESC HTTPS And Basic Auth
- #[Tags] DCAE-VESC-R1
- #[Documentation] Enable VESC Https and Authentication, Disable Http and Run Health Check
- #Enable VESC Https Auth
- #
- #${auth}= Create List ${VESC_HTTPS_USER} ${VESC_HTTPS_PD}
- #${session}= Create Session dcaegen2-r1 ${VESC_URL_HTTPS} auth=${auth} disable_warnings=1
- #${headers}= Create Dictionary Accept=*/* X-FromAppId=${GLOBAL_APPLICATION_ID}
- #${resp}= Get Request dcaegen2-r1 /healthcheck headers=${headers}
- #Should Be Equal As Strings ${resp.status_code} 200
+ Should Be Equal As Strings ${resp.status_code} 404
+ ${isEmpty}= Is Json Empty ${resp}
+ Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+
+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
+
+
+# Auth by certificate and basic auth username / password
+
+Enable VESC HTTPS with certBasicAuth
+ [Tags] DCAE-VESC-R1
+ [Documentation] Enable VESC Https and Authentication and Run Health Check
+ Enable VESC with certBasicAuth
+ ${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
+
Publish Single VES Fault Event Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 200 Response
+ [Documentation] Post single event and expect 202 Response
${evtdata}= Get Data From File ${EVENT_DATA_FILE}
Log Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD}
${resp}= Publish Event To VES Collector ${VES_ANY_EVENT_PATH} ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 200
+ 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
-
+ Should Be Equal As Strings ${ret} true
+
Publish Single VES Measurement Event Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post single event and expect 200 Response
+ [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 HTTP Status code ${resp.status_code}
- Should Be Equal As Strings ${resp.status_code} 200
+ 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
@@ -140,32 +188,97 @@ Publish Single VES Measurement Event Over HTTPS
Publish VES Fault Batch Events Over HTTPS
[Tags] DCAE-VESC-R1
- [Documentation] Post batched events and expect 202 Response
+ [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} 200
- #${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546016
+ 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
+
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}
Log Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path
${resp}= Publish Event To VES Collector /eventlistener/v5 ${evtdata}
- Log Receive HTTP Status code ${resp.status_code}
+ Log Receive HTTPS Status code ${resp.status_code}
Should Be Equal As Strings ${resp.status_code} 404
-
-Publish PNF Registration Event
+ ${isEmpty}= Is Json Empty ${resp}
+ Run Keyword If '${isEmpty}' == False Log ${resp.json()}
+
+Publish Single VES VNF Measurement Event over HTTP
[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}
+ [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} 200
+ Should Be Equal As Strings ${resp.status_code} 400
${isEmpty}= Is Json Empty ${resp}
Run Keyword If '${isEmpty}' == False Log ${resp.json()}
- ${ret}= DMaaP Message Receive QTFCOC540002E-reg
+
+
+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
+
+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()}
+
+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()}
+
+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
- \ No newline at end of file
+
+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}
+
+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()}
diff --git a/tests/dcaegen2/testcases/resources/DMaaP.py b/tests/dcaegen2/testcases/resources/DMaaP.py
index 092b6081..779397e4 100644
--- a/tests/dcaegen2/testcases/resources/DMaaP.py
+++ b/tests/dcaegen2/testcases/resources/DMaaP.py
@@ -17,8 +17,6 @@ import jsonschema
import json
import DcaeVariables
import SimpleHTTPServer
-from robot.api import logger
-
try:
from cStringIO import StringIO
@@ -42,10 +40,6 @@ def enque_event(evt):
if DcaeVariables.VESEventQ is not None:
try:
DcaeVariables.VESEventQ.put(evt)
- if DcaeVariables.IsRobotRun:
- logger.console("DMaaP Event enqued - size=" + str(len(evt)))
- else:
- print ("DMaaP Event enqueued - size=" + str(len(evt)))
return True
except Exception as e:
print (str(e))
@@ -55,18 +49,14 @@ def enque_event(evt):
def deque_event(wait_sec=25):
if DcaeVariables.IsRobotRun:
- logger.console("Enter DequeEvent")
+ pass
try:
evt = DcaeVariables.VESEventQ.get(True, wait_sec)
- if DcaeVariables.IsRobotRun:
- logger.console("DMaaP Event dequeued - size=" + str(len(evt)))
- else:
- print("DMaaP Event dequeued - size=" + str(len(evt)))
return evt
except Exception as e:
if DcaeVariables.IsRobotRun:
- logger.console(str(e))
- logger.console("DMaaP Event dequeue timeout")
+ pass
+
else:
print("DMaaP Event dequeue timeout")
return None
@@ -79,7 +69,6 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler):
return
def do_POST(self):
-
resp_code = 0
# Parse the form data posted
'''
@@ -120,12 +109,6 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler):
content_len = int(self.headers.getheader('content-length', 0))
post_body = self.rfile.read(content_len)
- if DcaeVariables.IsRobotRun:
- logger.console("\n" + "DMaaP Receive Event:\n" + post_body)
- else:
- print("\n" + "DMaaP Receive Event:")
- print (post_body)
-
indx = post_body.index("{")
if indx != 0:
post_body = post_body[indx:]
@@ -168,7 +151,6 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler):
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self.end_headers()
- # self.wfile.write("{'responses' : {'200' : {'description' : 'Success'}}}")
self.wfile.write("{'count': 1, 'serverTimeMs': 3}")
self.wfile.close()
else:
diff --git a/tests/dcaegen2/testcases/resources/DcaeLibrary.py b/tests/dcaegen2/testcases/resources/DcaeLibrary.py
index d4188e30..6b96826c 100644
--- a/tests/dcaegen2/testcases/resources/DcaeLibrary.py
+++ b/tests/dcaegen2/testcases/resources/DcaeLibrary.py
@@ -64,7 +64,7 @@ class DcaeLibrary(object):
return "false"
@staticmethod
- def enable_vesc_https_auth():
+ def enable_vesc_with_certBasicAuth():
global client
if 'Windows' in platform.system():
try:
@@ -85,14 +85,13 @@ class DcaeLibrary(object):
logger.console("Running script: " + script2run)
subprocess.call(script2run)
time.sleep(5)
- return
-
+ return
+
@staticmethod
def dmaap_message_receive(evtobj, action='contain'):
evt_str = DMaaP.deque_event()
while evt_str != None:
- logger.console("DMaaP receive VES Event:\n" + evt_str)
if action == 'contain':
if evtobj in evt_str:
logger.info("DMaaP Receive Expected Publish Event:\n" + evt_str)
diff --git a/tests/dcaegen2/testcases/resources/collector.properties b/tests/dcaegen2/testcases/resources/collector.properties
index 1c5c8411..c555e485 100755
--- a/tests/dcaegen2/testcases/resources/collector.properties
+++ b/tests/dcaegen2/testcases/resources/collector.properties
@@ -11,64 +11,55 @@
## Normally:
##
## - 8080 is http service
-## - https is disabled by default (-1)
+## - https is disabled by default
##
## - At this time, the server always binds to 0.0.0.0
##
-## The default port when header.authflag is disabled (0)
-#collector.service.port=8080
+##
+collector.service.port=8080
-## The secure port is required if header.authflag is set to 1 (true)
## Authentication is only supported via secure port
## When enabled - require valid keystore defined
collector.service.secure.port=8443
+# auth.method flags:
+#
+# noAuth - default option - no security (http)
+# certOnly - auth by certificate (https)
+# basicAuth - auth by basic auth username and password (https)
+# certBasicAuth - auth by certificate and basic auth username / password (https)
+auth.method=certBasicAuth
+
+## Combination of userid,hashPassword encoded pwd list to be supported
+## userid and pwd comma separated; pipe delimitation between each pair
+## Password is generated by crypt-password library using BCrypt algorithm stored in dcaegen2/sdk package
+## or https://nexus.onap.org/#nexus-search;quick~crypt-password
+header.authlist=sample1,$2a$10$0buh.2WeYwN868YMwnNNEuNEAMNYVU9.FSMJGyIKV3dGET/7oGOi6
+
## The keystore must be setup per installation when secure port is configured
-collector.keystore.file.location=../etc/keystore
-collector.keystore.passwordfile=./etc/passwordfile
-collector.keystore.alias=tomcat
+collector.keystore.file.location=etc/keystore
+collector.keystore.passwordfile=etc/passwordfile
+collector.cert.subject.matcher=etc/certSubjectMatcher.properties
-###############################################################################
-## Processing
-##
-## If there's a problem that prevents the collector from processing alarms,
-## it's normally better to apply back pressure to the caller than to try to
-## buffer beyond a reasonable size limit. With a limit, the server won't crash
-## due to being out of memory, and the caller will get a 5xx reply saying the
-## server is in trouble.
-collector.inputQueue.maxPending=8096
+## The truststore must be setup per installation when mutual tls support is configured
+collector.truststore.file.location=etc/truststore
+collector.truststore.passwordfile=etc/trustpasswordfile
## Schema Validation checkflag
## default no validation checkflag (-1)
## If enabled (1) - schemafile location must be specified
collector.schema.checkflag=1
-collector.schema.file={\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.3.json\"}
+collector.schema.file={\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.0.1.json\"}
-## List all streamid per domain to be supported. The streamid should match to channel name on dmaapfile
-collector.dmaap.streamid=fault=sec_fault|syslog=sec_syslog|heartbeat=sec_heartbeat|measurementsForVfScaling=sec_measurement|mobileFlow=sec_mobileflow|other=sec_other|stateChange=sec_statechange|thresholdCrossingAlert=sec_thresholdCrossingAlert|voiceQuality=ves_voicequality|sipSignaling=ves_sipsignaling
+## List all streamid per domain to be supported. The streamid should match to channel name on dmaapfile
+collector.dmaap.streamid=fault=ves-fault|syslog=ves-syslog|heartbeat=ves-heartbeat|measurementsForVfScaling=ves-measurement|mobileFlow=ves-mobileflow|other=ves-other|stateChange=ves-statechange|thresholdCrossingAlert=ves-thresholdCrossingAlert|voiceQuality=ves-voicequality|sipSignaling=ves-sipsignaling|notification=ves-notification|pnfRegistration=ves-pnfRegistration
collector.dmaapfile=./etc/DmaapConfig.json
-## Custom ExceptionConfiguration
-exceptionConfig=./etc/ExceptionConfig.json
-
-## authflag control authentication by the collector
-## If enabled (1) - then authlist has to be defined
-## When authflag is enabled, only secure port will be supported
-## To disable enter 0
-header.authflag=1
-## Combination of userid,base64 encoded pwd list to be supported
-## userid and pwd comma separated; pipe delimitation between each pair
-header.authlist=sample1,c2FtcGxlMQ==|vdnsagg,dmRuc2FnZw==
-
## Event transformation Flag - when set expects configurable transformation
## defined under ./etc/eventTransform.json
## Enabled by default; to disable set to 0
event.transform.flag=0
-###############################################################################
-##
-## Tomcat control
-##
-#tomcat.maxthreads=(tomcat default, which is usually 200)
-
+# Describes at what frequency (measured in minutes) should application try to fetch config from CBS
+collector.dynamic.config.update.frequency=5
diff --git a/tests/dcaegen2/testcases/resources/dcae_keywords.robot b/tests/dcaegen2/testcases/resources/dcae_keywords.robot
index 013f6f03..c4cdbb9c 100644
--- a/tests/dcaegen2/testcases/resources/dcae_keywords.robot
+++ b/tests/dcaegen2/testcases/resources/dcae_keywords.robot
@@ -1,7 +1,7 @@
*** 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 DcaeLibrary
+Library DcaeLibrary
Library OperatingSystem
Library Collections
Variables ../resources/DcaeVariables.py
@@ -10,6 +10,7 @@ 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
@@ -18,6 +19,17 @@ Create sessions
${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}
+ 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
+ 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
Create header
${headers}= Create Dictionary Content-Type=application/json
@@ -33,8 +45,8 @@ Get DCAE Nodes
Log Received response from dcae consul: ${resp.json()}
Should Be Equal As Strings ${resp.status_code} 200
${NodeList}= Get Json Value List ${resp.text} Node
- ${NodeListLength}= Get Length ${NodeList}
- ${len}= Get Length ${NodeList}
+ ${NodeListLength}= Get Length ${NodeList}
+ ${len}= Get Length ${NodeList}
Should Not Be Equal As Integers ${len} 0
[Return] ${NodeList}
@@ -56,7 +68,7 @@ DCAE Node Health Check
DCAE Check Health Status
[Arguments] ${NodeName} ${ItemStatus} ${CheckType}
- Should Be Equal As Strings ${ItemStatus} passing
+ Should Be Equal As Strings ${ItemStatus} passing
Log Node: ${NodeName} ${CheckType} check pass ok
VES Collector Suite Setup DMaaP
@@ -76,11 +88,11 @@ Check DCAE Results
@{headers}= Get From Dictionary ${json['returns']} columns
# Retrieve column names from headers
${columns}= Create List
- :for ${header} in @{headers}
+ :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}
+ :for ${row} IN @{rows}
\ ${cells}= Get From Dictionary ${row} cells
\ ${dict}= Make A Dictionary ${cells} ${columns}
\ Dictionary Should Contain Item ${dict} healthTestStatus GREEN
@@ -91,15 +103,15 @@ Make A Dictionary
${dict}= Create Dictionary
${collength}= Get Length ${columns}
${namelength}= Get Length ${names}
- :for ${index} in range 0 ${collength}
+ :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}
+ \ Set To Dictionary ${dict} ${name} ${value}
[Return] ${dict}
Json String To Dictionary
- [Arguments] ${json_string}
+ [Arguments] ${json_string}
${json_dict}= evaluate json.loads('''${json_string}''') json
[Return] ${json_dict}
@@ -110,7 +122,7 @@ Dictionary To Json String
Get DCAE Service Component Status
[Documentation] Get the status of a DCAE Service Component
- [Arguments] ${url} ${urlpath} ${usr} ${passwd}
+ [Arguments] ${url} ${urlpath} ${usr} ${passwd}
${auth}= Create List ${usr} ${passwd}
${session}= Create Session dcae-service-component ${url} auth=${auth}
${resp}= Get Request dcae-service-component ${urlpath}
@@ -120,26 +132,46 @@ 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}
- #Log Received response from dcae ${resp.json()}
[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}
- #Log Received response from dcae ${resp.json()}
[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}
- #Log Received response from dcae ${resp.json()}
[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}
- #Log Received response from dcae ${resp.json()}
[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}
diff --git a/tests/dcaegen2/testcases/resources/dcae_properties.robot b/tests/dcaegen2/testcases/resources/dcae_properties.robot
index 135ff263..7505fab4 100644
--- a/tests/dcaegen2/testcases/resources/dcae_properties.robot
+++ b/tests/dcaegen2/testcases/resources/dcae_properties.robot
@@ -12,3 +12,9 @@ ${GLOBAL_DCAE_USERNAME} console
${GLOBAL_DCAE_PASSWORD} ZjJkYjllMjljMTI2M2Iz
${VESC_HTTPS_USER} sample1
${VESC_HTTPS_PD} sample1
+${VESC_HTTPS_WRONG_PD} sample
+${VESC_HTTPS_WRONG_USER} sample
+${VESC_ROOTCA_CERT} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCA.crt
+${VESC_ROOTCA_KEY} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/rootCAdec.key
+${VESC_WRONG_CERT} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt
+${VESC_WRONG_KEY} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key \ No newline at end of file
diff --git a/tests/dcaegen2/testcases/resources/vesc_enable_https_auth.sh b/tests/dcaegen2/testcases/resources/vesc_enable_https_auth.sh
index 0755f077..29700bc5 100755
--- a/tests/dcaegen2/testcases/resources/vesc_enable_https_auth.sh
+++ b/tests/dcaegen2/testcases/resources/vesc_enable_https_auth.sh
@@ -14,10 +14,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-docker exec -it vesc /opt/app/VESCollector/bin/VESrestfulCollector.sh stop
-sleep 2
+docker exec vesc /opt/app/VESCollector/bin/appController.sh stop
+sleep 2
docker cp ${WORKSPACE}/tests/dcaegen2/testcases/resources/collector.properties vesc:/opt/app/VESCollector/etc
-sleep 10
-docker exec -id vesc /opt/app/VESCollector/bin/VESrestfulCollector.sh start
+sleep 10
+docker exec vesc /opt/app/VESCollector/bin/appController.sh start
sleep 5
-echo "VES Collector Restarted"
+echo "VES Collector Restarted with certBasicAuth"
diff --git a/tests/policy/apex-pdp/apex-pdp-test.robot b/tests/policy/apex-pdp/apex-pdp-test.robot
index dcdf2d80..9956731d 100644
--- a/tests/policy/apex-pdp/apex-pdp-test.robot
+++ b/tests/policy/apex-pdp/apex-pdp-test.robot
@@ -60,7 +60,7 @@ DeployOperationalPolicy
Log Creating session https://${POLICY_PAP_IP}:6969
${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Post Request policy /policy/pap/v1/pdps data=${postjson} headers=${headers}
+ ${resp}= Post Request policy /policy/pap/v1/pdps/deployments/batch data=${postjson} headers=${headers}
Log Received response from policy5 ${resp.text}
${postjsonobject} To Json ${postjson}
Should Be Equal As Strings ${resp.status_code} 200
diff --git a/tests/policy/apex-pdp/data/pdp_update.json b/tests/policy/apex-pdp/data/pdp_update.json
index ee485998..e880d5ed 100644
--- a/tests/policy/apex-pdp/data/pdp_update.json
+++ b/tests/policy/apex-pdp/data/pdp_update.json
@@ -2,110 +2,14 @@
"groups": [
{
"name": "defaultGroup",
- "description": "The default group that registers all supported policy types and pdps.",
- "pdpGroupState": "ACTIVE",
- "properties": {},
- "pdpSubgroups": [
+ "deploymentSubgroups": [
{
"pdpType": "apex",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.operational.Apex",
- "version": "1.0.0"
- }
- ],
+ "action": "POST",
"policies": [{
"name": "onap.policies.controlloop.Operational.apex.sampledomain",
"version": "1.0.0"
- }],
- "currentInstanceCount": 1,
- "desiredInstanceCount": 1,
- "properties": {},
- "pdpInstances": []
- },
- {
- "pdpType": "drools",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.Operational",
- "version": "1.0.0"
- }
- ],
- "policies": [],
- "currentInstanceCount": 0,
- "desiredInstanceCount": 1,
- "properties": {},
- "pdpInstances": []
- },
- {
- "pdpType": "xacml",
- "supportedPolicyTypes": [
- {
- "name": "onap.policies.controlloop.guard.FrequencyLimiter",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.MinMax",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.Blacklist",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.controlloop.guard.coordination.FirstBlocksSecond",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.monitoring.cdap.tca.hi.lo.app",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.AffinityPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.DistancePolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.HpaPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.OptimizationPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.PciPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.QueryPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.SubscriberPolicy",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.Vim_fit",
- "version": "1.0.0"
- },
- {
- "name": "onap.policies.optimization.VnfPolicy",
- "version": "1.0.0"
- }
- ],
- "policies": [],
- "currentInstanceCount": 0,
- "desiredInstanceCount": 1,
- "properties": {},
- "pdpInstances": []
+ }]
}
]
}
diff --git a/tests/policy/pap/data/create.group.request.json b/tests/policy/pap/data/create.group.request.json
index b0937f7f..ea04c0e5 100644
--- a/tests/policy/pap/data/create.group.request.json
+++ b/tests/policy/pap/data/create.group.request.json
@@ -17,12 +17,7 @@
"version": "1.0.0"
}
],
- "policies": [
- {
- "name": "onap.restart.tca",
- "version": "1.0.0"
- }
- ]
+ "policies": []
},
{
"pdpType": "pdpTypeB",
diff --git a/tests/policy/pap/data/deploy.group.request.json b/tests/policy/pap/data/deploy.group.request.json
new file mode 100644
index 00000000..7f3694de
--- /dev/null
+++ b/tests/policy/pap/data/deploy.group.request.json
@@ -0,0 +1,19 @@
+{
+ "groups": [
+ {
+ "name": "create.group.request",
+ "deploymentSubgroups": [
+ {
+ "pdpType": "pdpTypeA",
+ "action": "POST",
+ "policies": [
+ {
+ "name": "onap.restart.tca",
+ "version": "1.0.0"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/tests/policy/pap/pap-test.robot b/tests/policy/pap/pap-test.robot
index f2dd61da..36b593c7 100644
--- a/tests/policy/pap/pap-test.robot
+++ b/tests/policy/pap/pap-test.robot
@@ -34,7 +34,7 @@ CreatePdpGroups
${postjson}= Get file ${CURDIR}/data/create.group.request.json
${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth}
${headers}= Create Dictionary Accept=application/json Content-Type=application/json
- ${resp}= Post Request policy /policy/pap/v1/pdps data=${postjson} headers=${headers}
+ ${resp}= Post Request policy /policy/pap/v1/pdps/groups/batch data=${postjson} headers=${headers}
Log Received response from policy ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
@@ -61,6 +61,17 @@ QueryPdpGroups
Should Be Equal As Strings ${resp.json()['groups'][0]['pdpGroupState']} ACTIVE
Should Be Equal As Strings ${resp.json()['groups'][1]['name']} defaultGroup
+DeployPdpGroups
+ [Documentation] Runs Policy PAP Deploy Policies to PDP Groups
+ ${auth}= Create List healthcheck zb!XztG34
+ Log Creating session https://${POLICY_PAP_IP}:6969
+ ${postjson}= Get file ${CURDIR}/data/deploy.group.request.json
+ ${session}= Create Session policy https://${POLICY_PAP_IP}:6969 auth=${auth}
+ ${headers}= Create Dictionary Accept=application/json Content-Type=application/json
+ ${resp}= Post Request policy /policy/pap/v1/pdps/deployments/batch data=${postjson} headers=${headers}
+ Log Received response from policy ${resp.text}
+ Should Be Equal As Strings ${resp.status_code} 200
+
UndeployPolicy
[Documentation] Runs Policy PAP Undeploy a Policy from PDP Groups
${auth}= Create List healthcheck zb!XztG34