diff options
Diffstat (limited to 'tests')
14 files changed, 103 insertions, 111 deletions
diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot b/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot index 54d3e1c8..1ac91504 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot +++ b/tests/dcaegen2-collectors-hv-ves/testcases/__init__.robot @@ -33,8 +33,8 @@ HV-VES Collector Suites Setup Configure collector ${CONSUL_API_ACCESS}= Get Consul Api Access Url ${HTTP_METHOD_URL} ${CONSUL_CONTAINER_HOST} ${CONSUL_CONTAINER_PORT} - ${CONSUL_API_URL}= Catenate SEPARATOR= ${CONSUL_API_ACCESS} ${CONSUL_VES_HV_CONFIGURATION_KEY_PATH} - Publish HV VES Configuration In Consul ${CONSUL_API_URL} ${VES_HV_CONFIGURATION_JSON_FILEPATH} + ${CONSUL_API_URL}= Catenate SEPARATOR= ${CONSUL_API_ACCESS} ${CONSUL_HV_VES_CONFIGURATION_KEY_PATH} + Publish HV VES Configuration In Consul ${CONSUL_API_URL} ${HV_VES_CONFIGURATION_JSON_FILEPATH} Configure Dcae App ${DCAE_APP_API_ACCESS}= Get Dcae App Api Access Url ${HTTP_METHOD_URL} ${DCAE_APP_CONTAINER_HOST} ${DCAE_APP_CONTAINER_PORT} @@ -58,7 +58,7 @@ ${HTTP_METHOD_URL} http:// ${CONSUL_CONTAINER_HOST} consul-server ${CONSUL_CONTAINER_PORT} 8500 -${CONSUL_VES_HV_CONFIGURATION_KEY_PATH} /v1/kv/dcae-hv-ves-collector +${CONSUL_HV_VES_CONFIGURATION_KEY_PATH} /v1/kv/dcae-hv-ves-collector ${DCAE_APP_CONTAINER_HOST} dcae-app-simulator ${DCAE_APP_CONTAINER_PORT} 6063 @@ -70,5 +70,5 @@ ${DCAE_APP_API_MESSAGES_VALIDATION_PATH} ${DCAE_APP_API_MESSAGES_PATH}/val ${ROUTED_MESSAGES_TOPIC} TEST_HV_VES_PERF3GPP -${VES_HV_RESOURCES} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources -${VES_HV_CONFIGURATION_JSON_FILEPATH} ${VES_HV_RESOURCES}/ves-hv-configuration.json +${HV_VES_RESOURCES} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources +${HV_VES_CONFIGURATION_JSON_FILEPATH} ${HV_VES_RESOURCES}/ves-hv-configuration.json diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/authorization.robot b/tests/dcaegen2-collectors-hv-ves/testcases/authorization.robot index d5fc1e99..4d13a6bf 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/authorization.robot +++ b/tests/dcaegen2-collectors-hv-ves/testcases/authorization.robot @@ -72,9 +72,9 @@ Unencrypted connection on both ends *** Variables *** -${VES_HV_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios +${HV_VES_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios -${XNF_VALID_MESSAGES_REQUEST} ${VES_HV_SCENARIOS}/authorization/xnf-valid-messages-request.json +${XNF_VALID_MESSAGES_REQUEST} ${HV_VES_SCENARIOS}/authorization/xnf-valid-messages-request.json ${AMOUNT_0} 0 ${AMOUNT_5000} 5000 diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/libraries/DcaeAppSimulatorLibrary.py b/tests/dcaegen2-collectors-hv-ves/testcases/libraries/DcaeAppSimulatorLibrary.py index 3d811e49..dd41c6a3 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/libraries/DcaeAppSimulatorLibrary.py +++ b/tests/dcaegen2-collectors-hv-ves/testcases/libraries/DcaeAppSimulatorLibrary.py @@ -33,8 +33,8 @@ class DcaeAppSimulatorLibrary: resp = HttpRequests.session_without_env().get(app_url, timeout=10) HttpRequests.checkStatusCode(resp.status_code, DCAE_APP_NAME) - assert resp.content == expected_messages_amount, \ - "Messages consumed by simulator: " + resp.content + " expecting: " + expected_messages_amount + assert int(resp.content) == int(expected_messages_amount), \ + "Messages consumed by simulator: " + str(resp.content) + " expecting: " + str(expected_messages_amount) def assert_DCAE_app_consumed_less_equal_than(self, app_url, messages_threshold): logger.info("GET at: " + app_url) @@ -45,8 +45,8 @@ class DcaeAppSimulatorLibrary: " expecting more than 0 and less/equal than " + messages_threshold) assert 0 < int(resp.content) <= int(messages_threshold), \ - "Messages consumed by simulator: " + resp.content + \ - " expecting more than 0 and less/equal than " + messages_threshold + "Messages consumed by simulator: " + str(resp.content) + \ + " expecting more than 0 and less/equal than " + str(messages_threshold) def reset_DCAE_app_simulator(self, app_url): logger.info("DELETE at: " + app_url) diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/libraries/XnfSimulatorLibrary.py b/tests/dcaegen2-collectors-hv-ves/testcases/libraries/XnfSimulatorLibrary.py index 3f69f6ab..789c0b69 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/libraries/XnfSimulatorLibrary.py +++ b/tests/dcaegen2-collectors-hv-ves/testcases/libraries/XnfSimulatorLibrary.py @@ -22,15 +22,21 @@ import docker from robot.api import logger from time import sleep +HV_VES_VERSION = os.getenv("HV_VES_VERSION") +HV_VES_COLLECTOR_NETWORK = os.getenv("CONTAINERS_NETWORK") +HV_VES_COLLECTOR_NAMESPACE = os.getenv("HV_VES_COLLECTOR_NAMESPACE") +HV_VES_GROUP_ID = os.getenv("HV_VES_GROUP_ID") +HV_VES_SERVICE_NAME = os.getenv("HV_VES_SERVICE_NAME") +UNENCRYPTED_HV_VES_SERVICE_NAME = os.getenv("UNENCRYPTED_HV_VES_SERVICE_NAME") + XNF_SIMULATOR_NAME = "xNF Simulator" -HV_VES_COLLECTOR_NAMESPACE="onap" -HV_VES_GROUP_ID="org.onap.dcaegen2.collectors.hv-ves" +XNF_SIMULATOR_CONTAINER_PREFIX = os.getenv("XNF_SIMULATOR_IMAGE") SIMULATOR_IMAGE_NAME = HV_VES_COLLECTOR_NAMESPACE + "/" + HV_VES_GROUP_ID + ".hv-collector-xnf-simulator" -HV_VES_VERSION="1.1-SNAPSHOT" + SIMULATOR_IMAGE_FULL_NAME = os.getenv("DOCKER_REGISTRY_PREFIX") + SIMULATOR_IMAGE_NAME + ":" + HV_VES_VERSION WORKSPACE_ENV = os.getenv("WORKSPACE") -certificates_dir_path = WORKSPACE_ENV + "/plans/dcaegen2-collectors-hv-ves/testsuites/collector/ssl/" -collector_certs_lookup_dir = "/etc/ves-hv/" +CERTIFICATES_DIR_PATH = WORKSPACE_ENV + "/plans/dcaegen2-collectors-hv-ves/testsuites/collector/ssl/" +COLLECTOR_CERTS_LOOKUP_DIR = "/etc/ves-hv/" ONE_SECOND_IN_NANOS = 10 ** 9 @@ -88,13 +94,13 @@ class XnfSimulatorLibrary: command=xNF_startup_command, healthcheck=xNF_healthcheck_command, detach=True, - network="ves-hv-default", + network=HV_VES_COLLECTOR_NETWORK, ports={port + "/tcp": port}, volumes=self.container_volumes(), - name=xnf.container_name_prefix + port) + name=XNF_SIMULATOR_CONTAINER_PREFIX + port) def container_volumes(self): - return {certificates_dir_path: {"bind": collector_certs_lookup_dir, "mode": 'rw'}} + return {CERTIFICATES_DIR_PATH: {"bind": COLLECTOR_CERTS_LOOKUP_DIR, "mode": 'rw'}} def assert_containers_startup_was_successful(self, dockerClient): checks_amount = 6 @@ -119,7 +125,7 @@ class XnfSimulatorLibrary: log_filename = WORKSPACE_ENV + "/archives/containers_logs/" + \ suite_name.split(".")[-1] + "_" + container.name + ".log" file = open(log_filename, "w+") - file.write(container.logs()) + file.write(str(container.logs())) file.close() container.stop() container.remove() @@ -141,7 +147,6 @@ class XnfSimulatorLibrary: class XnfSimulator: - container_name_prefix = "ves-hv-collector-xnf-simulator" def __init__(self, port, @@ -151,13 +156,13 @@ class XnfSimulator: self.port = port self.healthcheck_server_port = "6063" cert_name_prefix = "" if should_use_valid_certs else "untrusted" - certificates_path_with_file_prefix = collector_certs_lookup_dir + cert_name_prefix + certificates_path_with_file_prefix = COLLECTOR_CERTS_LOOKUP_DIR + cert_name_prefix self.key_store_path = certificates_path_with_file_prefix + "client.p12" self.trust_store_path = certificates_path_with_file_prefix + "trust.p12" self.sec_store_passwd = "onaponap" self.disable_ssl = should_disable_ssl - self.hv_collector_host = "unencrypted-ves-hv-collector" \ - if should_connect_to_unencrypted_hv_ves else "ves-hv-collector" + self.hv_collector_host = UNENCRYPTED_HV_VES_SERVICE_NAME \ + if should_connect_to_unencrypted_hv_ves else HV_VES_SERVICE_NAME def get_startup_command(self): startup_command = ["--listen-port", self.port, @@ -167,8 +172,7 @@ class XnfSimulator: "--key-store", self.key_store_path, "--trust-store", self.trust_store_path, "--key-store-password", self.sec_store_passwd, - "--trust-store-password", self.sec_store_passwd - ] + "--trust-store-password", self.sec_store_passwd] if self.disable_ssl: startup_command.append("--ssl-disable") return startup_command diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot b/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot index 15c8ee8b..2fab3295 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot +++ b/tests/dcaegen2-collectors-hv-ves/testcases/message-routing.robot @@ -96,18 +96,18 @@ ${HTTP_METHOD_URL} http:// ${XNF_SIM_API_PATH} /simulator/async -${VES_HV_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios -${XNF_FIXED_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/fixed-payload/xnf-fixed-payload-request.json -${XNF_TOO_BIG_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/too-big-payload/xnf-too-big-payload-request.json -${XNF_INVALID_WIRE_FRAME_REQUEST} ${VES_HV_SCENARIOS}/invalid-wire-frame/xnf-invalid-wire-frame-request.json -${XNF_INVALID_GPB_DATA_REQUEST} ${VES_HV_SCENARIOS}/invalid-gpb-data/xnf-invalid-gpb-data-request.json -${XNF_UNSUPPORTED_DOMAIN_REQUEST} ${VES_HV_SCENARIOS}/unsupported-domain/xnf-unsupported-domain-request.json - -${DCAE_FIXED_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/fixed-payload/dcae-fixed-payload-request.json -${DCAE_TOO_BIG_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/too-big-payload/dcae-too-big-payload-request.json -${DCAE_INVALID_WIRE_FRAME_REQUEST} ${VES_HV_SCENARIOS}/invalid-wire-frame/dcae-invalid-wire-frame-request.json -${DCAE_INVALID_GPB_DATA_REQUEST} ${VES_HV_SCENARIOS}/invalid-gpb-data/dcae-invalid-gpb-data-request.json -${DCAE_UNSUPPORTED_DOMAIN_REQUEST} ${VES_HV_SCENARIOS}/unsupported-domain/dcae-unsupported-domain-request.json +${HV_VES_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios +${XNF_FIXED_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/fixed-payload/xnf-fixed-payload-request.json +${XNF_TOO_BIG_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/too-big-payload/xnf-too-big-payload-request.json +${XNF_INVALID_WIRE_FRAME_REQUEST} ${HV_VES_SCENARIOS}/invalid-wire-frame/xnf-invalid-wire-frame-request.json +${XNF_INVALID_GPB_DATA_REQUEST} ${HV_VES_SCENARIOS}/invalid-gpb-data/xnf-invalid-gpb-data-request.json +${XNF_UNSUPPORTED_DOMAIN_REQUEST} ${HV_VES_SCENARIOS}/unsupported-domain/xnf-unsupported-domain-request.json + +${DCAE_FIXED_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/fixed-payload/dcae-fixed-payload-request.json +${DCAE_TOO_BIG_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/too-big-payload/dcae-too-big-payload-request.json +${DCAE_INVALID_WIRE_FRAME_REQUEST} ${HV_VES_SCENARIOS}/invalid-wire-frame/dcae-invalid-wire-frame-request.json +${DCAE_INVALID_GPB_DATA_REQUEST} ${HV_VES_SCENARIOS}/invalid-gpb-data/dcae-invalid-gpb-data-request.json +${DCAE_UNSUPPORTED_DOMAIN_REQUEST} ${HV_VES_SCENARIOS}/unsupported-domain/dcae-unsupported-domain-request.json ${AMOUNT_25000} 25000 ${AMOUNT_50000} 50000 diff --git a/tests/dcaegen2-collectors-hv-ves/testcases/multiple-clients.robot b/tests/dcaegen2-collectors-hv-ves/testcases/multiple-clients.robot index 09b62c78..735a2085 100644 --- a/tests/dcaegen2-collectors-hv-ves/testcases/multiple-clients.robot +++ b/tests/dcaegen2-collectors-hv-ves/testcases/multiple-clients.robot @@ -45,9 +45,9 @@ Handle Multiple Connections *** Variables *** -${VES_HV_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios +${HV_VES_SCENARIOS} %{WORKSPACE}/tests/dcaegen2-collectors-hv-ves/testcases/resources/scenarios -${XNF_SMALLER_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/multiple-simulators-payload/xnf-simulator-smaller-valid-request.json -${DCAE_SMALLER_PAYLOAD_REQUEST} ${VES_HV_SCENARIOS}/multiple-simulators-payload/dcae-smaller-valid-request.json +${XNF_SMALLER_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/multiple-simulators-payload/xnf-simulator-smaller-valid-request.json +${DCAE_SMALLER_PAYLOAD_REQUEST} ${HV_VES_SCENARIOS}/multiple-simulators-payload/dcae-smaller-valid-request.json ${AMOUNT_15000} 15000 diff --git a/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml b/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml deleted file mode 100644 index 269fdf1d..00000000 --- a/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<measCollecFile xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"> - <fileHeader dnPrefix="some dnPrefix" vendorName="FooBar Ltd" - fileFormatVersion="32.435 V10.0"> - <fileSender localDn="Dublin"/> - <measCollec beginTime="2018-10-02T12:00:00+01:00"/> - </fileHeader> - <measData> - <managedElement swVersion="r0.1" localDn="Dublin"/> - <measInfo measInfoId="some measInfoId"> - <job jobId="jobId"/> - <granPeriod endTime="2018-10-02T12:15:00Z" duration="PT900S"/> - <repPeriod duration="PT900S"/> - <measTypes>a b c</measTypes> - <measValue measObjLdn="objLdn"> - <measResults>76 27 98</measResults> - <suspect>false</suspect> - </measValue> - </measInfo> - </measData> - <fileFooter> - <measCollec endTime="2018-10-02T12:15:00+01:00"/> - </fileFooter> -</measCollecFile> diff --git a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot index 311ee433..cbb77f93 100644 --- a/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot +++ b/tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot @@ -17,7 +17,6 @@ ${DELIVERY_ENDPOINT} /delivery ${HEALTHCHECK_ENDPOINT} /healthcheck ${NO_MANAGED_ELEMENT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_no_managed_element.xml ${NO_MEASDATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_no_measdata.xml -${MEASD_RESULT_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/A_meas_result.xml ${VALID_METADATA_PATH} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/valid_metadata.json ${DIFF_VENDOR_METADATA} %{WORKSPACE}/tests/dcaegen2-pmmapper/pmmapper/assets/diff_vendor_metadata.json ${CLI_EXEC_CLI_PM_LOG} docker exec pmmapper /bin/sh -c "tail -5 /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log" @@ -29,6 +28,7 @@ ${CLI_EXEC_PM_FILTER} curl 'http://${CONSUL_IP}:8500/v1/kv/pm ${CLI_RESTART_PMMAPPER} docker restart pmmapper ${CLI_DELETE_SUB1} curl -i -X DELETE -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:DGL" -k https://localhost:8443/subs/1 ${CLI_DELETE_SUB2} curl -i -X DELETE -H "Content-Type:application/vnd.dmaap-dr.subscription" -H "X-DMAAP-DR-ON-BEHALF-OF:DGL" -k https://localhost:8443/subs/2 +${CLI_MESSAGE_ROUTER_TOPIC} curl http://${DMAAP_MR_IP}:3904/events/topic.org.onap.dmaap.mr.test1/CG1/C1?timeout=2000 *** Test Cases *** @@ -43,7 +43,6 @@ Verify 3GPP PM Mapper Subscribes to Data Router CheckLog ${CLI_EXEC_CLI_SUBS} 3gpppmmapper CheckLog ${CLI_EXEC_CLI_SUBS} "privilegedSubscriber":true - Verify Health Check returns 200 when a REST GET request to healthcheck url [Tags] PM_MAPPER_03 [Documentation] Verify Health Check returns 200 when a REST GET request to healthcheck url @@ -71,56 +70,46 @@ Verify 3GPP PM Mapper responds appropriately when invalid metadata is provided VerifyResponse ${resp.content} Malformed Metadata. CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=2 -Verify 3GPP PM Mapper received pushed PM data from Data Router +Verify 3GPP PM Mapper received pushed PM data from data router and publishes to message router. [Tags] PM_MAPPER_06 - [Documentation] Verify 3GPP PM Mapper received pushed PM data from Data Router + [Documentation] Verify 3GPP PM Mapper received pushed PM data from data router and publishes to message router. [Timeout] 1 minute ${PM_DATA}= Get File ${PM_DATA_FILE_PATH} ${valid_metatdata} Get File ${VALID_METADATA_PATH} ${resp}= PutCall ${PUBLISH_NODE_URL} 3 ${PM_DATA} ${PUBLISH_CONTENT_TYPE} ${valid_metatdata.replace("\n","")} pmmapper VerifyResponse ${resp.status_code} 204 Sleep 10s - CheckLog ${CLI_EXEC_CLI_PM_LOG} Event Processed + CheckLog ${CLI_EXEC_CLI_PM_LOG} Successfully published VES events to messagerouter CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=3 - -Verify that PM Mapper logs successful when a file that contains measdata is provided - [Tags] PM_MAPPER_07 - [Documentation] Verify that PM Mapper logs successful when a file that contains measdata is provided - [Timeout] 1 minute - ${valid_meas_result_content}= Get File ${MEASD_RESULT_PATH} - ${valid_metatdata} Get File ${VALID_METADATA_PATH} - ${headers}= Create Dictionary X-ONAP-RequestID=4 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=4 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} - ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/A_meas_result.xml data=${valid_meas_result_content} headers=${headers} - VerifyResponse ${resp.status_code} 200 - CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation successful - CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=4 + Sleep 10s + CheckLog ${CLI_MESSAGE_ROUTER_TOPIC} perf3gpp_gnb-Ericsson_pmMeasResult Verify that PM Mapper logs successful when a file that contains no measdata is provided - [Tags] PM_MAPPER_08 + [Tags] PM_MAPPER_07 [Documentation] Verify that PM Mapper logs successful when a file that contains no measdata is provided [Timeout] 1 minute ${valid_no_measdata_content}= Get File ${NO_MEASDATA_PATH} ${valid_metatdata} Get File ${VALID_METADATA_PATH} - ${headers}= Create Dictionary X-ONAP-RequestID=5 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=3 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} + ${headers}= Create Dictionary X-ONAP-RequestID=4 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=3 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/A_no_measdata.xml data=${valid_no_measdata_content} headers=${headers} VerifyResponse ${resp.status_code} 200 - CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation successful - CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=5 + CheckLog ${CLI_EXEC_CLI_PM_LOG} MeasData is empty + CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=4 Verify that PM Mapper throws Event failed validation against schema error when no managed element content is provided - [Tags] PM_MAPPER_09 + [Tags] PM_MAPPER_08 [Documentation] Verify 3gpp pm mapper responds with an error when no managed element content is provided [Timeout] 1 minute ${no_managed_element_content}= Get File ${NO_MANAGED_ELEMENT_PATH} ${valid_metatdata} Get File ${VALID_METADATA_PATH} - ${headers}= Create Dictionary X-ONAP-RequestID=6 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} + ${headers}= Create Dictionary X-ONAP-RequestID=5 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${valid_metatdata.replace("\n","")} ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/A_no_managed_element.xml data=${no_managed_element_content} headers=${headers} VerifyResponse ${resp.status_code} 200 CheckLog ${CLI_EXEC_CLI_PM_LOG} XML validation failed - CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=6 + CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=5 Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering. - [Tags] PM_MAPPER_10 + [Tags] PM_MAPPER_09 [Documentation] Verify that PM Mapper correctly identifies a file that should not be mapped based on metadata filtering. [Timeout] 1 minute ${cli_cmd_output}= Run Process ${CLI_EXEC_VENDOR_FILTER} shell=yes @@ -129,12 +118,12 @@ Verify that PM Mapper correctly identifies a file that should not be mapped base Should Be Equal As Strings ${cli_cmd_output.rc} 0 ${cli_cmd_output}= Run Process ${CLI_RESTART_PMMAPPER} shell=yes Sleep 10s - ${valid_meas_result_content}= Get File ${MEASD_RESULT_PATH} + ${pm_data}= Get File ${PM_DATA_FILE_PATH} ${diff_vendor_metadata}= Get File ${DIFF_VENDOR_METADATA} - ${headers}= Create Dictionary X-ONAP-RequestID=7 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${diff_vendor_metadata.replace("\n","")} - ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/A_meas_result.xml data=${valid_meas_result_content} headers=${headers} + ${headers}= Create Dictionary X-ONAP-RequestID=6 Content-Type=application/xml X-DMAAP-DR-PUBLISH-ID=2 X-DMAAP-DR-META=${diff_vendor_metadata.replace("\n","")} + ${resp}= Put Request mapper_session ${DELIVERY_ENDPOINT}/A20181002.0000-1000-0015-1000_5G.xml data=${pm_data} headers=${headers} CheckLog ${CLI_EXEC_CLI_PM_LOG} Metadata does not match any filters, - CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=7 + CheckLog ${CLI_EXEC_CLI_PM_LOG} RequestID=6 *** Keywords *** diff --git a/tests/usecases/5G-bulkpm/BulkpmE2E.robot b/tests/usecases/5G-bulkpm/BulkpmE2E.robot index 08277bd6..f8ba0fb1 100644 --- a/tests/usecases/5G-bulkpm/BulkpmE2E.robot +++ b/tests/usecases/5G-bulkpm/BulkpmE2E.robot @@ -17,12 +17,12 @@ ${EVENT_DATA_FILE} %{WORKSPACE}/tests/usecases/5G-bulkpm/a ${TARGETURL_TOPICS} http://${DMAAP_MR_IP}:3904/topics ${TARGETURL_SUBSCR} http://${DMAAP_MR_IP}:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12?timeout=1000 ${CLI_EXEC_CLI} curl -k https://${DR_PROV_IP}:8443/internal/prov -${CLI_EXEC_CLI_FILECONSUMER} docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .gz" +${CLI_EXEC_CLI_FILECONSUMER} docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .xml" ${CLI_EXEC_CLI_DFC_LOG} docker exec dfc /bin/sh -c "cat /var/log/ONAP/application.log" > /tmp/dfc_docker.log.robot ${CLI_EXEC_CLI_DFC_LOG_GREP} grep "Publish to DR successful!" /tmp/dfc_docker.log.robot -${CLI_EXEC_CLI_FILECONSUMER_CP} docker cp fileconsumer-node:/opt/app/subscriber/delivery/${SFTP_IP}_xNF.pm.xml.gz.M %{WORKSPACE} -${CLI_EXEC_RENAME_METADATA} mv %{WORKSPACE}/${SFTP_IP}_xNF.pm.xml.gz.M %{WORKSPACE}/metadata.json +${CLI_EXEC_CLI_FILECONSUMER_CP} docker cp fileconsumer-node:/opt/app/subscriber/delivery/oteNB5309_xNF.pm.xml.M %{WORKSPACE} +${CLI_EXEC_RENAME_METADATA} mv %{WORKSPACE}/oteNB5309_xNF.pm.xml.M %{WORKSPACE}/metadata.json ${metadataSchemaPath} %{WORKSPACE}/tests/usecases/5G-bulkpm/assets/metadata.schema.json ${metadataJsonPath} %{WORKSPACE}/metadata.json @@ -86,7 +86,7 @@ Verify Fileconsumer Receive PM file from Data Router ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_FILECONSUMER} shell=yes Log ${cli_cmd_output.stdout} Should Be Equal As Strings ${cli_cmd_output.rc} 0 - Should Contain ${cli_cmd_output.stdout} xNF.pm.xml.gz + Should Contain ${cli_cmd_output.stdout} oteNB5309_xNF.pm.xml Verify File Consumer Receive valid metadata from Data Router [Tags] Bulk_PM_E2E_06 @@ -94,7 +94,7 @@ Verify File Consumer Receive valid metadata from Data Router ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_FILECONSUMER} shell=yes Log ${cli_cmd_output.stdout} Should Be Equal As Strings ${cli_cmd_output.rc} 0 - Should Contain ${cli_cmd_output.stdout} ${SFTP_IP}_xNF.pm.xml.gz.M + Should Contain ${cli_cmd_output.stdout} oteNB5309_xNF.pm.xml.M ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_FILECONSUMER_CP} shell=yes ${cli_cmd_output}= Run Process ${CLI_EXEC_RENAME_METADATA} shell=yes ${validation_result}= Validate ${metadataSchemaPath} ${metadataJsonPath} diff --git a/tests/vid/resources/docker-compose.yml b/tests/vid/resources/docker-compose.yml index 5f2c0fec..01fa92b3 100644 --- a/tests/vid/resources/docker-compose.yml +++ b/tests/vid/resources/docker-compose.yml @@ -1,11 +1,12 @@ version: '3' services: vid-server: - image: nexus3.onap.org:10001/onap/vid:3.0-STAGING-latest + image: nexus3.onap.org:10001/onap/vid:4.0-STAGING-latest environment: - VID_MYSQL_DBNAME=vid_openecomp_epsdk - VID_MYSQL_PASS=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - VID_MSO_SERVER_URL=https://so-simulator:8443 + - VID_AAI_URL=http://aai-simulator:8443 ports: - "8080:8080" - "8443:8443" @@ -29,6 +30,19 @@ services: build: context: simulators dockerfile: Dockerfile + args: + component: so ports: - "8444:8443" - container_name: so-simulator
\ No newline at end of file + container_name: so-simulator + + aai-simulator: + build: + context: simulators + dockerfile: Dockerfile + args: + component: aai + ports: + - "8445:8443" + container_name: aai-simulator + diff --git a/tests/vid/resources/simulators/Dockerfile b/tests/vid/resources/simulators/Dockerfile index ace6d56d..e6586b1e 100644 --- a/tests/vid/resources/simulators/Dockerfile +++ b/tests/vid/resources/simulators/Dockerfile @@ -1,16 +1,12 @@ -FROM alpine:3.9 +FROM python:3-alpine3.9 -RUN apk add --no-cache python3 && \ - python3 -m ensurepip && \ - rm -r /usr/lib/python*/ensurepip && \ - pip3 install --upgrade pip setuptools && \ - if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \ - if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \ - rm -r /root/.cache +# `component` should be `so` or `aai` +ARG component +ENV component=$component COPY SO.py / ADD ./test_data_assets/ / EXPOSE 8443 -CMD [ "python", "./SO.py", "expected_so_requests.json", "expected_so_responses.json" ] +CMD python ./SO.py expected_${component}_requests.json expected_${component}_responses.json diff --git a/tests/vid/resources/simulators/SO.py b/tests/vid/resources/simulators/SO.py index c1199390..fa481b38 100644 --- a/tests/vid/resources/simulators/SO.py +++ b/tests/vid/resources/simulators/SO.py @@ -103,7 +103,7 @@ class JsonFileToDictReader(object): def init_so_simulator(): expected_so_requests = JsonFileToDictReader.read_expected_test_data(argv[1]) expected_so_responses = JsonFileToDictReader.read_expected_test_data(argv[2]) - logging.basicConfig(filename='output.log', level=logging.INFO) + logging.basicConfig(level=logging.INFO) handler = partial(SOHandler, expected_so_requests, expected_so_responses) handler.protocol_version = "HTTP/1.0" httpd = HTTPServer(('', DEFAULT_PORT), handler) diff --git a/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json b/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json new file mode 100644 index 00000000..3d77fe59 --- /dev/null +++ b/tests/vid/resources/simulators/test_data_assets/expected_aai_requests.json @@ -0,0 +1,4 @@ +{ + "get": { + } +}
\ No newline at end of file diff --git a/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json b/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json new file mode 100644 index 00000000..c809bca1 --- /dev/null +++ b/tests/vid/resources/simulators/test_data_assets/expected_aai_responses.json @@ -0,0 +1,9 @@ +{ + "get": { + "cloud-region": [{ + "cloud-owner": "CloudOwner", + "cloud-region-id": "RegionOne" + } + ] + } +} |