From: Aleksandra Maciaga Date: Wed, 20 Nov 2019 11:14:44 +0000 (+0100) Subject: Add scripts generating temporary certificates for VES CSIT tests X-Git-Tag: 6.0.0-ONAP~83^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=a73f9a5c673acc711aed2e7eef7fcb984b7a96bc;p=integration%2Fcsit.git Add scripts generating temporary certificates for VES CSIT tests Issue-ID: DCAEGEN2-2000 Signed-off-by: Aleksandra Maciaga Change-Id: I2b33c6716d349c60450a4acad3d87e5fc92b27fc --- diff --git a/tests/dcaegen2/testcases/assets/certs/rootCAdec.key b/tests/dcaegen2/testcases/assets/certs/rootCAdec.key deleted file mode 100644 index e33b7e34..00000000 --- a/tests/dcaegen2/testcases/assets/certs/rootCAdec.key +++ /dev/null @@ -1,51 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- diff --git a/tests/dcaegen2/testcases/dcae_ves.robot b/tests/dcaegen2/testcases/dcae_ves.robot index f9a97b05..48912e15 100644 --- a/tests/dcaegen2/testcases/dcae_ves.robot +++ b/tests/dcaegen2/testcases/dcae_ves.robot @@ -7,9 +7,10 @@ Library OperatingSystem Library Collections Library DcaeLibrary Resource ./resources/dcae_keywords.robot + Test Teardown Cleanup VES Events -Suite Setup Run keywords VES Collector Suite Setup DMaaP Create sessions Create header -Suite Teardown VES Collector Suite Shutdown DMaaP +Suite Setup Run keywords VES Collector Suite Setup DMaaP Generate Certs Create sessions Create header +Suite Teardown Run keywords VES Collector Suite Shutdown DMaaP Remove Certs *** Test Cases *** @@ -82,7 +83,6 @@ Healthcheck with Outdated Cert ${uuid}= Generate UUID ${headers}= Create Dictionary Accept=*/* X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${err_msg}= Run Keyword And Expect Error SSLError:* Get Request ${https_outdated_cert_session} /healthcheck headers=${headers} - Should Contain ${err_msg} bad handshake Should Contain ${err_msg} certificate unknown Log Recieved error message ${err_msg} @@ -135,14 +135,14 @@ Publish Single VES VNF Measurement Event With Cert Publish Single VES VNF Measurement Event With Wrong Cert [Tags] DCAE-VESC-R1 - [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake - @{err_content} Create List bad handshake certificate unknown + [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with certificate unknown + @{err_content} Create List certificate unknown Send Request And Expect Error Publish Event To VES Collector ${https_invalid_cert_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} SSLError:* @{err_content} Publish Single VES VNF Measurement Event With Outdated Cert [Tags] DCAE-VESC-R1 - [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with bad handshake - @{err_content} Create List bad handshake certificate unknown + [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7 endpoint over HTTPS and expect SSLError with certificate unknown + @{err_content} Create List certificate unknown Send Request And Expect Error Publish Event To VES Collector ${https_outdated_cert_session} ${VES_EVENTLISTENER_V7} ${VES_VALID_JSON_V7} SSLError:* @{err_content} Publish Single VES VNF Measurement Event Without Auth And Cert @@ -167,14 +167,14 @@ Publish V7 Batch Event With Cert Publish V7 Batch With Wrong Cert [Tags] DCAE-VESC-R1 - [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake - @{err_content} Create List bad handshake certificate unknown + [Documentation] Post single event with valid data and invalid certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with certificate unknown + @{err_content} Create List certificate unknown Send Request And Expect Error Publish Event To VES Collector ${https_invalid_cert_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} SSLError:* @{err_content} Publish V7 Batch Event With Outdated Cert [Tags] DCAE-VESC-R1 - [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with bad handshake - @{err_content} Create List bad handshake certificate unknown + [Documentation] Post single event with valid data and outdated certificate to /eventListener/v7/eventBatch endpoint over HTTPS and expect SSLError with certificate unknown + @{err_content} Create List certificate unknown Send Request And Expect Error Publish Event To VES Collector ${https_outdated_cert_session} ${VES_BATCH_EVENT_ENDPOINT_V7} ${VES_VALID_BATCH_JSON_V7} SSLError:* @{err_content} Publish V7 Batch Event Without Auth And Cert diff --git a/tests/dcaegen2/testcases/resources/CertsLibrary.py b/tests/dcaegen2/testcases/resources/CertsLibrary.py new file mode 100644 index 00000000..b8189422 --- /dev/null +++ b/tests/dcaegen2/testcases/resources/CertsLibrary.py @@ -0,0 +1,42 @@ + +import os +import subprocess +import time + +from robot.api import logger + + +class CertsLibrary(object): + + def __init__(self): + pass + + + + @staticmethod + def generate_certs(): + ws = os.environ['WORKSPACE'] + script2run = ws + "/tests/dcaegen2/testcases/resources/gen-certs.sh" + logger.info("Running script: " + script2run) + logger.console("Running script: " + script2run) + subprocess.call([script2run, ws]) + time.sleep(5) + return + + @staticmethod + def remove_certs(): + ws = os.environ['WORKSPACE'] + script2run = ws + "/tests/dcaegen2/testcases/resources/rm-certs.sh" + logger.info("Running script: " + script2run) + logger.console("Running script: " + script2run) + subprocess.call([script2run, ws]) + time.sleep(5) + return + + + + + + + + diff --git a/tests/dcaegen2/testcases/resources/dcae_keywords.robot b/tests/dcaegen2/testcases/resources/dcae_keywords.robot index 16a8a8ae..0011ab88 100644 --- a/tests/dcaegen2/testcases/resources/dcae_keywords.robot +++ b/tests/dcaegen2/testcases/resources/dcae_keywords.robot @@ -4,6 +4,7 @@ Library RequestsLibrary Library DcaeLibrary Library OperatingSystem Library Collections +Library CertsLibrary Variables ../resources/DcaeVariables.py Resource ../../../common.robot Resource ../resources/dcae_properties.robot @@ -13,7 +14,7 @@ Create sessions [Documentation] Create all required sessions ${auth}= Create List ${VESC_HTTPS_USER} ${VESC_HTTPS_PD} ${wrong_auth}= Create List ${VESC_HTTPS_WRONG_USER} ${VESC_HTTPS_WRONG_PD} - ${certs}= Create List ${VESC_ROOTCA_CERT} ${VESC_ROOTCA_KEY} + ${certs}= Create List ${VESC_CERT} ${VESC_KEY} ${wrong_certs}= Create List ${VESC_WRONG_CERT} ${VESC_WRONG_KEY} ${outdated_certs}= Create List ${VESC_OUTDATED_CERT} ${VESC_OUTDATED_KEY} Create Session dcae_vesc_url ${VESC_URL} diff --git a/tests/dcaegen2/testcases/resources/dcae_properties.robot b/tests/dcaegen2/testcases/resources/dcae_properties.robot index de5519ee..119ef236 100644 --- a/tests/dcaegen2/testcases/resources/dcae_properties.robot +++ b/tests/dcaegen2/testcases/resources/dcae_properties.robot @@ -4,6 +4,7 @@ Documentation store all properties that can change or are used in multipl ... make sure you prepend them with GLOBAL so that other files can easily see it is from this file. *** Variables *** + ${GLOBAL_APPLICATION_ID} robot-dcaegen2 ${GLOBAL_DCAE_CONSUL_URL} http://135.205.228.129:8500 ${GLOBAL_DCAE_CONSUL_URL1} http://135.205.228.170:8500 @@ -14,8 +15,8 @@ ${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_CERT} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/temporary.crt +${VESC_KEY} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/temporary.key ${VESC_WRONG_CERT} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.crt ${VESC_WRONG_KEY} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/wrong.key ${VESC_OUTDATED_CERT} %{WORKSPACE}/tests/dcaegen2/testcases/assets/certs/outdated.crt @@ -44,4 +45,5 @@ ${CONFIG_BINDING_URL} http://localhost:8443 ${CB_HEALTHCHECK_PATH} /healthcheck ${CB_SERVICE_COMPONENT_PATH} /service_component/ ${VES_Service_Name1} dcae-controller-ves-collector -${VES_Service_Name2} ves-collector-not-exist \ No newline at end of file +${VES_Service_Name2} ves-collector-not-exist + diff --git a/tests/dcaegen2/testcases/resources/gen-certs.sh b/tests/dcaegen2/testcases/resources/gen-certs.sh new file mode 100755 index 00000000..f3f358f9 --- /dev/null +++ b/tests/dcaegen2/testcases/resources/gen-certs.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +WS=$1 +dir=$WS/tests/dcaegen2/testcases/assets/certs + +openssl genrsa -out "$dir/temporary.key" 2048 + +openssl req -new -key "$dir/temporary.key" -subj "/C=PL/ST=DL/O=Nokia/CN=dcaegen2" -out "$dir/temporary.csr" + +openssl x509 -req -in "$dir/temporary.csr" -CA "$dir/rootCA.crt" -CAkey "$dir/rootCA.key" -passin pass:collector -CAcreateserial -out "$dir/temporary.crt" -days 1 -sha256 diff --git a/tests/dcaegen2/testcases/resources/rm-certs.sh b/tests/dcaegen2/testcases/resources/rm-certs.sh new file mode 100755 index 00000000..827849c7 --- /dev/null +++ b/tests/dcaegen2/testcases/resources/rm-certs.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +WS=$1 +dir=$WS/tests/dcaegen2/testcases/assets/certs + +rm "$dir/temporary.crt" "$dir/temporary.csr" "$dir/temporary.key" "$dir/rootCA.srl" \ No newline at end of file