From 586432bccb77b0e0b7cd9f387b8e1a22131fe3e2 Mon Sep 17 00:00:00 2001 From: ecaiyanlinux Date: Mon, 25 Oct 2021 15:24:37 +0200 Subject: [PATCH] Integration dmaap-mr & dmaap-mediator Change-Id: I16e5a9e2a1cdb753da5523e3b0ea807447d2fab4 Signed-off-by: ecaiyanlinux Issue-ID: NONRTRIC-580 --- docker-compose/data/prepareDmaapMsg.sh | 17 +++---- docker-compose/data/prepareEcsData.sh | 7 +-- docker-compose/data/sendMsgToMediator.sh | 50 +++++++++++++++++++ docker-compose/data/testdata/ECS/EiJob.json | 4 +- docker-compose/data/testdata/ECS/EiProducer.json | 4 +- .../data/testdata/dmaap-mediator-java/flow.puml | 5 ++ .../data/testdata/dmaap-mediator-java/job.json | 3 ++ .../dmaap-mediator-java/config/application.yaml | 56 ++++++++++++++++++++++ .../config/application_configuration.json | 8 ++++ .../dmaap-mediator-java/docker-compose.yaml | 5 +- docker-compose/ecs/docker-compose.yaml | 6 +-- 11 files changed, 146 insertions(+), 19 deletions(-) create mode 100755 docker-compose/data/sendMsgToMediator.sh create mode 100644 docker-compose/data/testdata/dmaap-mediator-java/flow.puml create mode 100644 docker-compose/data/testdata/dmaap-mediator-java/job.json create mode 100755 docker-compose/dmaap-mediator-java/config/application.yaml create mode 100644 docker-compose/dmaap-mediator-java/config/application_configuration.json diff --git a/docker-compose/data/prepareDmaapMsg.sh b/docker-compose/data/prepareDmaapMsg.sh index 73b07bc0..4de374a6 100755 --- a/docker-compose/data/prepareDmaapMsg.sh +++ b/docker-compose/data/prepareDmaapMsg.sh @@ -32,6 +32,7 @@ a1_sim_OSC_port=${2:-30001} a1_sim_STD_port=${3:-30003} a1_sim_STD_v1_port=${4:-30005} httpx=${5:-"http"} +SHELL_FOLDER=$(cd "$(dirname "$0")";pwd) echo "using dmaap-mr port: "$dmaa_mr_port echo "using a1-sim-OSC port: "$a1_sim_OSC_port @@ -65,11 +66,11 @@ curl -skw %{http_code} $httpx://localhost:$a1_sim_STD_port/counter/interface echo -e "\n" echo "create policy type 1 to ric1:" -curl -X PUT -skw %{http_code} $httpx://localhost:$a1_sim_OSC_port/policytype?id=1 -H Content-Type:application/json --data-binary @testdata/OSC/policy_type.json +curl -X PUT -skw %{http_code} $httpx://localhost:$a1_sim_OSC_port/policytype?id=1 -H Content-Type:application/json --data-binary @${SHELL_FOLDER}/testdata/OSC/policy_type.json echo -e "\n" echo "create policy type 2 to ric3:" -curl -skw %{http_code} $httpx://localhost:$a1_sim_STD_v1_port/policytype?id=2 -X PUT -H Accept:application/json -H Content-Type:application/json -H X-Requested-With:XMLHttpRequest --data-binary @testdata/v2/policy_type.json +curl -skw %{http_code} $httpx://localhost:$a1_sim_STD_v1_port/policytype?id=2 -X PUT -H Accept:application/json -H Content-Type:application/json -H X-Requested-With:XMLHttpRequest --data-binary @${SHELL_FOLDER}/testdata/v2/policy_type.json echo -e "\n" for i in {1..12}; do @@ -88,7 +89,7 @@ done ## Using PMS v1 interface echo "create service 1 to policy agent via dmaap_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v1/dmaap-msg-service-create.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v1/dmaap-msg-service-create.json echo -e "\n" echo "get result from mr of previous request:" @@ -96,7 +97,7 @@ curl -X GET "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-WRITE/users echo -e "\n" echo "create policies to ric1 & ric2 & ric3 with type1 and service1 via dmaa_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v1/dmaap-msg-policy-create.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v1/dmaap-msg-policy-create.json echo -e "\n" echo "get result from mr of previous request:" @@ -104,7 +105,7 @@ curl -X GET "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-WRITE/users echo -e "\n" echo "get policy from policy agent via dmaap_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v1/dmaap-msg-policy-get.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v1/dmaap-msg-policy-get.json echo -e "\n" echo "get result from mr of previous request:" @@ -113,7 +114,7 @@ echo -e "\n" ## Using PMS v2 interface echo "create service 2 to policy agent via dmaap_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v2/dmaap-msg-service-create.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v2/dmaap-msg-service-create.json echo -e "\n" echo "get result from mr of previous request:" @@ -121,7 +122,7 @@ curl -X GET "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-WRITE/users echo -e "\n" echo "create policies to ric1 & ric2 & ric3 with type1 and service1 via dmaa_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v2/dmaap-msg-policy-create.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v2/dmaap-msg-policy-create.json echo -e "\n" echo "get result from mr of previous request:" @@ -129,7 +130,7 @@ curl -X GET "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-WRITE/users echo -e "\n" echo "get policy from policy agent via dmaap_mr:" -curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @testdata/dmaap/v2/dmaap-msg-policy-get.json +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/A1-POLICY-AGENT-READ/" --data-binary @${SHELL_FOLDER}/testdata/dmaap/v2/dmaap-msg-policy-get.json echo -e "\n" echo "get result from mr of previous request:" diff --git a/docker-compose/data/prepareEcsData.sh b/docker-compose/data/prepareEcsData.sh index 11b0dc88..21cc35b3 100755 --- a/docker-compose/data/prepareEcsData.sh +++ b/docker-compose/data/prepareEcsData.sh @@ -28,6 +28,7 @@ ecs_port=${1:-8083} httpx=${4:-"http"} +SHELL_FOLDER=$(cd "$(dirname "$0")";pwd) echo "using ecs port: "$ecs_port echo "using protocol: "$httpx @@ -39,7 +40,7 @@ echo -e "\n" # Create EiType echo "Create EiType:" -curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/data-producer/v1/info-types/type1 -H accept:application/json -H Content-Type:application/json --data-binary @testdata/ECS/EiType.json +curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/data-producer/v1/info-types/type1 -H accept:application/json -H Content-Type:application/json --data-binary @${SHELL_FOLDER}/testdata/ECS/EiType.json echo -e "\n" # Get EiTypes @@ -54,7 +55,7 @@ echo -e "\n" # Create EiProducer echo "Create EiProducer:" -curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/data-producer/v1/info-producers/1 -H Content-Type:application/json --data-binary @testdata/ECS/EiProducer.json +curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/data-producer/v1/info-producers/1 -H Content-Type:application/json --data-binary @${SHELL_FOLDER}/testdata/ECS/EiProducer.json echo -e "\n" # Get EiProducers @@ -74,7 +75,7 @@ echo -e "\n" # Create EiJob echo "Create EiJob Of A Certain Type type1:" -curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/A1-EI/v1/eijobs/job1 -H Content-Type:application/json --data-binary @testdata/ECS/EiJob.json +curl -X PUT -skw %{http_code} $httpx://localhost:$ecs_port/A1-EI/v1/eijobs/job1 -H Content-Type:application/json --data-binary @${SHELL_FOLDER}/testdata/ECS/EiJob.json echo -e "\n" # Get EiJobs diff --git a/docker-compose/data/sendMsgToMediator.sh b/docker-compose/data/sendMsgToMediator.sh new file mode 100755 index 00000000..a2f3db31 --- /dev/null +++ b/docker-compose/data/sendMsgToMediator.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# ============LICENSE_START=============================================== +# Copyright (C) 2021 Nordix Foundation. All rights reserved. +# ======================================================================== +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END================================================= +# + +# The scripts in data/ will generate some dummy data in the running system. +# It will send a dmaap msg of job to mediator: + +# Run command: +# ./sendMsgToMediator.sh [dmaap-mr port] [http/https] + +SHELL_FOLDER=$(cd "$(dirname "$0")";pwd) +bash ${SHELL_FOLDER}/prepareEcsData.sh + +dmaa_mr_port=${1:-3904} +httpx=${2:-"http"} + +echo "using dmaap-mr port: "$dmaa_mr_port +echo "using protocol: "$httpx +echo -e "\n" + +echo "dmaap-mr topics:" +curl -skw %{http_code} $httpx://localhost:$dmaa_mr_port/topics/listAll +echo -e "\n" + +echo "dmaap-mr create topic unauthenticated.VES_NOTIFICATION_OUTPUT:" +curl -skw %{http_code} -X POST "$httpx://localhost:$dmaa_mr_port/topics/create" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"topicName\": \"unauthenticated.VES_NOTIFICATION_OUTPUT\", \"topicDescription\": \"test topic\", \"partitionCount\": 1, \"replicationCount\": 1, \"transactionEnabled\": \"false\"}" +echo -e "\n" + +echo "dmaap-mr topics:" +curl -skw %{http_code} $httpx://localhost:$dmaa_mr_port/topics/listAll +echo -e "\n" + +echo "send job msg to dmaap-mr:" +curl -k -X POST -sw %{http_code} -H accept:application/json -H Content-Type:application/json "$httpx://localhost:$dmaa_mr_port/events/unauthenticated.VES_NOTIFICATION_OUTPUT/" --data-binary @${SHELL_FOLDER}/testdata/dmaap-mediator-java/job.json +echo -e "\n" \ No newline at end of file diff --git a/docker-compose/data/testdata/ECS/EiJob.json b/docker-compose/data/testdata/ECS/EiJob.json index 003c70f9..3788f210 100644 --- a/docker-compose/data/testdata/ECS/EiJob.json +++ b/docker-compose/data/testdata/ECS/EiJob.json @@ -1,8 +1,8 @@ { "eiTypeId": "type1", - "jobResultUri": "https://ricsim_g3_1:8185/datadelivery", + "jobResultUri": "http://consumer:80/", "jobOwner": "ricsim_g3_1", - "jobStatusNotificationUri": "http://producer:80/", + "jobStatusNotificationUri": "http://consumer:80/", "jobDefinition": { "jobparam1": "value1_job1", "jobparam2": "value2_job1", diff --git a/docker-compose/data/testdata/ECS/EiProducer.json b/docker-compose/data/testdata/ECS/EiProducer.json index 85d3e6d3..34632b0f 100644 --- a/docker-compose/data/testdata/ECS/EiProducer.json +++ b/docker-compose/data/testdata/ECS/EiProducer.json @@ -1,5 +1,5 @@ { "supported_info_types": ["type1"], - "info_job_callback_url": "https://producer-stub:8093/callbacks/job/prod-a", - "info_producer_supervision_callback_url": "https://producer-stub:8093/callbacks/supervision/prod-a" + "info_job_callback_url": "http://consumer:80/", + "info_producer_supervision_callback_url": "http://consumer:80/" } \ No newline at end of file diff --git a/docker-compose/data/testdata/dmaap-mediator-java/flow.puml b/docker-compose/data/testdata/dmaap-mediator-java/flow.puml new file mode 100644 index 00000000..5295fa69 --- /dev/null +++ b/docker-compose/data/testdata/dmaap-mediator-java/flow.puml @@ -0,0 +1,5 @@ +@startuml +dmaap_mr <- dmaap_mediator: dmaap_mediator reads msg from dmaap_mr +dmaap_mediator -> ecs: dmaap_mediator gets jobs from ecs +dmaap_mediator -> consumer: callbackUrl, send msg to consumer +@enduml \ No newline at end of file diff --git a/docker-compose/data/testdata/dmaap-mediator-java/job.json b/docker-compose/data/testdata/dmaap-mediator-java/job.json new file mode 100644 index 00000000..51a68c50 --- /dev/null +++ b/docker-compose/data/testdata/dmaap-mediator-java/job.json @@ -0,0 +1,3 @@ +{ + "testdata":"testdata" +} \ No newline at end of file diff --git a/docker-compose/dmaap-mediator-java/config/application.yaml b/docker-compose/dmaap-mediator-java/config/application.yaml new file mode 100755 index 00000000..57fd8ce8 --- /dev/null +++ b/docker-compose/dmaap-mediator-java/config/application.yaml @@ -0,0 +1,56 @@ +spring: + profiles: + active: prod + main: + allow-bean-definition-overriding: true + aop: + auto: false +management: + endpoints: + web: + exposure: + # Enabling of springboot actuator features. See springboot documentation. + include: "loggers,logfile,health,info,metrics,threaddump,heapdump" + +logging: + # Configuration of logging + level: + ROOT: ERROR + org.springframework: ERROR + org.springframework.data: ERROR + org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR + org.oran.dmaapadapter: TRACE + file: + name: /var/log/dmaap-adaptor-service/application.log +server: + # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework. + # See springboot documentation. + port : 8435 + http-port: 8084 + ssl: + key-store-type: JKS + key-store-password: policy_agent + key-store: /opt/app/dmaap-adaptor-service/etc/cert/keystore.jks + key-password: policy_agent + key-alias: policy_agent +app: + webclient: + # Configuration of the trust store used for the HTTP client (outgoing requests) + # The file location and the password for the truststore is only relevant if trust-store-used == true + # Note that the same keystore as for the server is used. + trust-store-used: false + trust-store-password: policy_agent + trust-store: /opt/app/dmaap-adaptor-service/etc/cert/truststore.jks + # Configuration of usage of HTTP Proxy for the southbound accesses. + # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s + http.proxy-host: + http.proxy-port: 0 + vardata-directory: /var/dmaap-adaptor-service + ecs-base-url: http://ecs:8083 + # Location of the component configuration file. The file will only be used if the Consul database is not used; + # configuration from the Consul will override the file. + configuration-filepath: /opt/app/dmaap-adaptor-service/data/application_configuration.json + dmaap-base-url: http://dmaap-mr:3904 + # The url used to adress this component. This is used as a callback url sent to other components. + dmaap-adapter-base-url: https://dmaap-mediator-java:8435 + diff --git a/docker-compose/dmaap-mediator-java/config/application_configuration.json b/docker-compose/dmaap-mediator-java/config/application_configuration.json new file mode 100644 index 00000000..f15d628a --- /dev/null +++ b/docker-compose/dmaap-mediator-java/config/application_configuration.json @@ -0,0 +1,8 @@ +{ + "types": [ + { + "id": "type1", + "dmaapTopicUrl": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12" + } + ] +} diff --git a/docker-compose/dmaap-mediator-java/docker-compose.yaml b/docker-compose/dmaap-mediator-java/docker-compose.yaml index a2f1f5ec..1d53de43 100644 --- a/docker-compose/dmaap-mediator-java/docker-compose.yaml +++ b/docker-compose/dmaap-mediator-java/docker-compose.yaml @@ -28,4 +28,7 @@ services: - default ports: - 8084:8084 - - 8435:8435 \ No newline at end of file + - 8435:8435 + volumes: + - ./dmaap-mediator-java/config/application.yaml:/opt/app/dmaap-adaptor-service/config/application.yaml:ro + - ./dmaap-mediator-java/config/application_configuration.json:/opt/app/dmaap-adaptor-service/data/application_configuration.json:ro \ No newline at end of file diff --git a/docker-compose/ecs/docker-compose.yaml b/docker-compose/ecs/docker-compose.yaml index 354b3bc2..376f734c 100644 --- a/docker-compose/ecs/docker-compose.yaml +++ b/docker-compose/ecs/docker-compose.yaml @@ -22,7 +22,7 @@ networks: services: ecs: - image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-enrichment-coordinator-service:1.2.0 + image: nexus3.o-ran-sc.org:10003/o-ran-sc/nonrtric-enrichment-coordinator-service:1.2.0-SNAPSHOT container_name: ecs networks: default: @@ -31,9 +31,9 @@ services: ports: - 8083:8083 - 8434:8434 - producer: + consumer: image: eexit/mirror-http-server - container_name: producer + container_name: consumer networks: - default ports: -- 2.16.6