diff options
Diffstat (limited to 'tests')
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 + +UYrYxcNCEiXxcrA2Me6EloFPEQ34/BZwWBtQ4WKz9Ya7FLl16SKyyuoB2BXWbRfX +3sGUCrKaLIC3BzPzwGRW5QoTlmUhOSAW5yzDWTOGN10uUlwTN9sT5CNPfWRwA211 +8eh0T3y0OyXVdGIQWDKDV9FhRStzblyZ/iZPN640dpPy/m4AldR3KFnBvErchNoL +7lUon+lHmMQMpom+sbAlW3agv5AVeDbg8rxTU+8pBNnX0kAeB/LxzSJ85fNwwswN +BPk+4zasUIrhJDgBliuCFsqPj404kHaIxnBDtiO16xLstDYiDuS67BRlChRwgpSX +k/jutnC8qPo/exMlc6UtXkTyiUg+/58boZ11CH9lKntLkPhTXLxdoebUMQBSlPz/ +RfJ9e3+CxYvqN7aKLY4u57ODYdYlmFFYlQ5JBh1ulxN9BpZ6IgejrstIC4Wk/kYQ +PMFMY+cGgTqSJW48qq7tUOmYwLNSLavRX3Smqbuzte9ntDua1c7mYtn/mYijlwso +dE1j+0EqWLe2j4dyUMiFxf+YvGSigeeIaYxom5dGWHHKwgBRHt5hMsuvWI5coMk8 +bC3bUjpfAcikqkIUGd2Ue7iI5FNz/oKkDVKoUQfrz/k6o5szqO0CHEt9VuD5bAgx +HoCSP+1qn5j/CxGwFZSplcBiUXcGxtdRuVuQ2gl0fCDJNpPSWAG8EBIuabAgwqoQ +eGa3PU5iFaJOHLyRLCvZDjIqNZMI4EnMeO8SD02hQyiBQFS7czCwRXjt1bU3VIR+ +HtwMWuHlPy+L95qvRGdaI9SBII9grUGY/GK4v2WQamD7ZanW3blbVztWXDHs6xqT +P0y3A5DOdEfcZzhVICgvJlHno7SjLJ9gjFxkGZO2VNQnhE2Yx/4PkFv5eWT8gKn6 +AQXlNhYYdyPzSNXMZ5V9K+hQT+zsKYddfDRvGYESjp/1+omaXpdpBPsaVJW0M3le +vMv6IS5v2l3HYV39nXVNVclx46Ka4qQwbdL+HhjY6knCVMDUBxbLDa6pSOsmx1rb +vWF+hZWWrvCryQNDyUBkRjh9yaA6oUYoSSkUQJZZ1pedwbjrvyU+h+cG/m6UZ07M +A//oGKczrx9TjKqnVQiHJ/yq7SMCHVc7PghOyMZYClotImFGTnwLJULNIfVVNnJy +P0xGEJxhnxi1TahgI/PIC+815yyR6Is8FlWNc/dYl88EUq3vDVdV7HKBm675NR/d +yR4ORqlOSm7RvUTz5cKqwelGef1ne8NntM2IPqphOEaFbvVZTwYFA9LBSAYp4xD8 +S87t6yF/GOI5U1vE9TWGhRCuzcdFlatTsZsYIyWwYebbkazEEDS0Nw6Q5oeSgHhZ +Ud2nXQhB6IuWAQsSy2/qRKa+mXMMmNiVtHSSAWtOyd8NTC2ZTSj+RR7hBe6Dn8Ua +mpFNKl/XXtdkPvMNC+eXRK58h2Gq9+Ulz7gJKBoUUrGE8fSR1X6wcxhp8SZ3WiSJ +TCTleTH3nueQBhvsqES28oT5dKS8CIDy9iCjJEQgs3kMYpwzApCQdN40buFIa6uh +y+hyZaD2lrBGOHa6MQn/CZueNXOeCvTJvvs/tWHU9l+sNsb1RtfctFUUtDqk482U +rMhOUvPZoLeHpO0GNBhWeuW76CRIxrtuArEzbT/lGoylDr4QwEMduEx08IiwVxiG +MFGBlBTfQqtgnzDB5+cRJVAr542WvDAYq4uZcvSpV03GEcyEQyEULXS881HR0IdJ +zvLVLW934QJ47xaWxdcISxMP9A/CwFgMcV93Nb3aRJK8TAr1VgGbQWNelAq55QYE +114RnFR1hY3jGAh2xmuaEKsx8eUa9YMmFr9E/wfRcs8W8hhqcHAHHOUv9XG9EztR +t7nvneaGQndi+Ylksw5jtDf/40vjwCdqCnlMSIRUI+Bbhd5AcJ5ZMc8Ah3vufqjg +TbbL7T/eqP/cjS8hV+kfcgtHfdF+qW52Qe5hjByVWem0Zu0MeWM0Njo5Xa/YTsOJ +wT/0Bv2UY2BYmgY5TG0KjHFaa1AlgJvdp+UVnedMmRc+zA6Cdy/t5TyC4ZAzX+1t +FCbdK7b7J8ySx8RO4QuOJJ6XTJTqAygEU913y8I97PAo7RfOnGs9YayGwX3sKOBc +eBEwFQb5ViC3JN04rCp0B2FjlH36m9i7cX8zWS3/OHTPz8eTU2dRFi9nicj+9H+2 +lmWbZ7jvjHwYWLbKDDaYVBb6wJYFg40A6958NTGSINcEfmixvqgaABa6kEavcwTf +zc0HLsOlNGyZF6cs6Ad6DksxQvFopZGuLr0X1mAS4wz/bCrdffEKkPstXrArY8Ww +Hm5VQSjBc3vgRrabHA5IAETGPQmu9ndyj0odCadPyVdCYGlBCQXwks8GaClVYxb8 +ajHCdfg9f5+iSMLznjcbooFTuZmIQo8jCssGuB0mh2q3iMLJBa8kkyBcvSZZQZEz +Sgf/+qEfyiZt7XQY2Ysgz4bhAmSluSyIs0KO68ie1wjLBu/Oy+oDtq1F3WoFVz5F +MJIco5nwX/p+OGrNllMnOPIuLNdIoAACr4JkeurNIv7flxD0y8a4C6pYGgNqs5Yv +biLVzYZ4fpejCbHwetFRj7FTIk+y8GKAoAx15UkhXCSbUKDG6Q5TpU91CX9gxrq4 +SpcWtf6+F8sZsHstQgcOXr484fG7sd3THR0mGNVHpY1bGW/s3jymtWcECecC3DI2 +Gd6p7lWegQQrHdP8hM1WPZdoQ4Iq5rgJR8DT21SUGTd2P7Y7lpRULCoUOit9IKIy +LTYwVhZuZRnELERVKkg9Ovwofb0P1a5q5eYImOuf3+T1iLDIhFIG5Y83NkznIJxo +vduCnyyDSbXSFNp46j1hQedFZDwZooGMvU0OyHIhJYTvZ99ajRkg1UqkZfnUxJZW +nLywPHmk1isHoHhlxSVkBAHfz9cOxZKf4EpKEKgz7o87y7Sm1FMN0FvMIPTeoC/s +YBML5ghQZ7yS9wPQu7n0gfIP/KS1uuRLy02kvO0mmuzqtUXJIozfyaCbrWoqt9Qe +75yLpV/960W5MN2vzMF95g/f5JjLDz9ZGS4vBK+v+mqOLMUWG94IS7WHa2ngHdzc +9xGToNXbd/N6CjyB0+aBacCFuya7YVBfGnR2W0DJmY8/EKifTma4P0uyecghfnTi +-----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 |