From: RehanRaza Date: Thu, 21 Oct 2021 14:38:36 +0000 (+0200) Subject: Adapt controlloop version of O-RU usecase to use ONAP Istanbul X-Git-Tag: 1.2.0~69^2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=20e8eef0dffc9c748439470ed91b601fffd1a9c3;p=nonrtric.git Adapt controlloop version of O-RU usecase to use ONAP Istanbul New docker images have been released for Istanbul. This commit uses the released docker images and does the corresponding changes required in new version. Change-Id: I2647967a5828ae79a753e91c26b35bb3478963f7 Issue-ID: NONRTRIC-615 Signed-off-by: RehanRaza --- diff --git a/docker-compose/docker-compose-policy-framework/config/db/bootstrap-database.sh b/docker-compose/docker-compose-policy-framework/config/db/bootstrap-database.sh index ac2d0a50..6a6310de 100755 --- a/docker-compose/docker-compose-policy-framework/config/db/bootstrap-database.sh +++ b/docker-compose/docker-compose-policy-framework/config/db/bootstrap-database.sh @@ -24,5 +24,5 @@ ### mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < /docker-entrypoint-initdb.d/create-db.sql -mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY';" -mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "GRANT ALL PRIVILEGES ON controlloop.* TO 'policy'@'%';" \ No newline at end of file +mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "CREATE USER 'policy_user'@'%' IDENTIFIED BY 'policy_user';" +mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "GRANT ALL PRIVILEGES ON controlloop.* TO 'policy_user'@'%';" \ No newline at end of file diff --git a/docker-compose/docker-compose-policy-framework/config/pap/defaultConfig.json b/docker-compose/docker-compose-policy-framework/config/pap/defaultConfig.json index 8c4ea64d..1890dae5 100644 --- a/docker-compose/docker-compose-policy-framework/config/pap/defaultConfig.json +++ b/docker-compose/docker-compose-policy-framework/config/pap/defaultConfig.json @@ -5,7 +5,7 @@ "port": 6969, "userName": "healthcheck", "password": "zb!XztG34", - "https": true, + "https": false, "aaf": false }, "pdpParameters": { diff --git a/docker-compose/docker-compose-policy-framework/config/runtime-controlloop/ClRuntimeParameters.json b/docker-compose/docker-compose-policy-framework/config/runtime-controlloop/ClRuntimeParameters.json deleted file mode 100644 index 429e1afc..00000000 --- a/docker-compose/docker-compose-policy-framework/config/runtime-controlloop/ClRuntimeParameters.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "ControlLoopRuntimeGroup", - "supervisionScannerIntervalSec": 1000, - "participantStateChangeIntervalSec": 1000, - "participantClUpdateIntervalSec": 1000, - "participantClStateChangeIntervalSec": 1000, - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - }, - "participantParameters": { - "heartBeatMs": 120000, - "updateParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - }, - "stateChangeParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - } - }, - "databaseProviderParameters": { - "name": "PolicyProviderParameterGroup", - "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl", - "databaseDriver": "org.mariadb.jdbc.Driver", - "databaseUrl": "jdbc:mariadb://localhost:3306/controlloop", - "databaseUser": "policy", - "databasePassword": "P01icY", - "persistenceUnit": "CommissioningMariaDb" - }, - "topicParameterGroup": { - "topicSources": [ - { - "topic": "POLICY-CLRUNTIME-PARTICIPANT", - "servers": [ - "localhost" - ], - "topicCommInfrastructure": "dmaap", - "fetchTimeout": 15000 - } - ], - "topicSinks": [ - { - "topic": "POLICY-CLRUNTIME-PARTICIPANT", - "servers": [ - "localhost" - ], - "topicCommInfrastructure": "dmaap" - }, - { - "topic": "POLICY-NOTIFICATION", - "servers": [ - "localhost" - ], - "topicCommInfrastructure": "dmaap" - } - ] - } -} diff --git a/docker-compose/docker-compose-policy-framework/docker-compose.yml b/docker-compose/docker-compose-policy-framework/docker-compose.yml index 4878357d..894b117f 100644 --- a/docker-compose/docker-compose-policy-framework/docker-compose.yml +++ b/docker-compose/docker-compose-policy-framework/docker-compose.yml @@ -145,7 +145,7 @@ services: 'pap', '6969' ] apex-pdp: - image: registry.nordix.org/onap/policy-apex-pdp:2.6.0-SNAPSHOT + image: nexus3.onap.org:10001/onap/policy-apex-pdp:2.5.4 container_name: policy-apex-pdp depends_on: - mariadb diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/commission.yaml b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/commission.yaml index c22a890f..c2731f48 100644 --- a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/commission.yaml +++ b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/commission.yaml @@ -202,22 +202,86 @@ node_types: properties: provider: type: string - requred: false + required: false + metadata: + common: true + description: Specifies the organization that provides the control loop element participant_id: type: onap.datatypes.ToscaConceptIdentifier requred: true + metadata: + common: true + participantType: + type: onap.datatypes.ToscaConceptIdentifier + required: true + metadata: + common: true + description: The identity of the participant type that hosts this type of Control Loop Element + startPhase: + type: integer + required: false + constraints: + - greater_or_equal: 0 + metadata: + common: true + description: A value indicating the start phase in which this control loop element will be started, the + first start phase is zero. Control Loop Elements are started in their start_phase order and stopped + in reverse start phase order. Control Loop Elements with the same start phase are started and + stopped simultaneously + uninitializedToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from uninitialized to passive + passiveToRunningTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to running + runningToPassiveTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from running to passive + passiveToUninitializedTimeout: + type: integer + required: false + constraints: + - greater_or_equal: 0 + default: 60 + metadata: + common: true + description: The maximum time in seconds to wait for a state chage from passive to uninitialized org.onap.policy.clamp.controlloop.ControlLoop: version: 1.0.1 derived_from: tosca.nodetypes.Root properties: provider: type: string - requred: false + required: false + metadata: + common: true + description: Specifies the organization that provides the control loop element elements: type: list required: true + metadata: + common: true entry_schema: type: onap.datatypes.ToscaConceptIdentifier + description: Specifies a list of control loop element definitions that make up this control loop definition org.onap.policy.clamp.controlloop.PolicyControlLoopElement: version: 1.0.1 derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement @@ -237,11 +301,20 @@ topology_template: description: Control loop element for the Link Monitor properties: provider: Ericsson - participantType: org.onap.policy.controlloop.PolicyControlLoopParticipant:2.3.1 - startPhase: 0 - policyType: onap.policies.controlloop.operational.common.Apex:1.0.0 - policyId: operational.apex.linkmonitor:1.0.0 - org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition: + participant_id: + name: org.onap.PM_Policy + version: 1.0.0 + participantType: + name: org.onap.policy.controlloop.PolicyControlLoopParticipant + version: 2.3.1 + policy_type_id: + name: onap.policies.controlloop.operational.common.Apex + version: 1.0.0 + policy_id: + name: operational.apex.linkmonitor + version: 1.0.0 + pdpGroup: defaultGroup + org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition0: version: 1.2.3 type: org.onap.policy.clamp.controlloop.ControlLoop type_version: 1.0.0 diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation-command.json b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation-command.json index a09c1121..ea219142 100644 --- a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation-command.json +++ b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation-command.json @@ -1,5 +1,5 @@ { - "orderedState": "RUNNING", + "orderedState": "PASSIVE", "controlLoopIdentifierList": [ { "name": "LinkMonitorInstance0", diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation.json b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation.json index ec01a337..798de5d4 100644 --- a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation.json +++ b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/controlloop-rest-payloads/instantiation.json @@ -4,7 +4,7 @@ "name": "LinkMonitorInstance0", "version": "1.0.1", "definition": { - "name": "org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition", + "name": "org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition0", "version": "1.2.3" }, "state": "UNINITIALISED", @@ -21,6 +21,10 @@ "name": "org.onap.policy.controlloop.PolicyControlLoopParticipant", "version": "2.3.1" }, + "participantId": { + "name": "org.onap.PM_Policy", + "version": "1.0.0" + }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", "description": "Link Monitor Policy Control Loop Element" diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/config/ks.jks b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/config/ks.jks new file mode 100644 index 00000000..001c7e1a Binary files /dev/null and b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/config/ks.jks differ diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/docker-compose.yml b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/docker-compose.yml new file mode 100644 index 00000000..bd35d744 --- /dev/null +++ b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/docker-compose.yml @@ -0,0 +1,84 @@ +# +# ===========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===================================================== +# +version: '2' +networks: + default: + driver: bridge + name: nonrtric-docker-net +services: + controlloop-runtime: + image: nexus3.onap.org:10001/onap/policy-clamp-cl-runtime:6.1.3 + container_name: controlloop-runtime + hostname: controlloop-runtime + ports: + - "6969:6969" + expose: + - 6969 + volumes: + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + - ./wait_for_port.sh:/opt/app/policy/clamp/bin/wait_for_port.sh:ro + environment: + - TOPICSERVER=onap-dmaap + - MARIADB_HOST=mariadb + - MARIADB_PORT=3306 + - KEYSTORE=/opt/app/policy/clamp/etc/ssl/policy-keystore + - KEYSTORE_PASSWD=Pol1cy_0nap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_SERVERS_0=onap-dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_TOPICCOMMINFRASTRUCTURE=dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_FETCHTIMEOUT=15000 + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_USEHTTPS=false + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_SERVERS_0=onap-dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_TOPICCOMMINFRASTRUCTURE=dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_FETCHTIMEOUT=15000 + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_USEHTTPS=false + entrypoint: /opt/app/policy/clamp/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/clamp/bin/controlloop-runtime.sh', + 'mariadb', '3306', + 'onap-dmaap', '3904' + ] + policy-participant: + image: nexus3.onap.org:10001/onap/policy-clamp-cl-pf-ppnt:6.1.3 + container_name: policy-participant + depends_on: + - controlloop-runtime + hostname: policy-participant + volumes: + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + - ./wait_for_port.sh:/opt/app/policy/clamp/bin/wait_for_port.sh:ro + environment: + - TOPICSERVER=onap-dmaap + - KEYSTORE=/opt/app/policy/clamp/etc/ssl/policy-keystore + - KEYSTORE_PASSWD=Pol1cy_0nap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_SERVERS_0=onap-dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_TOPICCOMMINFRASTRUCTURE=dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_FETCHTIMEOUT=15000 + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_USEHTTPS=false + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_SERVERS_0=onap-dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_TOPICCOMMINFRASTRUCTURE=dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_FETCHTIMEOUT=15000 + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_USEHTTPS=false + entrypoint: /opt/app/policy/clamp/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/clamp/bin/policy-participant.sh', + 'controlloop-runtime', '6969' + ] \ No newline at end of file diff --git a/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/wait_for_port.sh b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/wait_for_port.sh new file mode 100755 index 00000000..aec5f222 --- /dev/null +++ b/test/usecases/oruclosedlooprecovery/apexpolicyversion/LinkMonitor/docker-compose-controlloop/wait_for_port.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# ============LICENSE_START==================================================== +# Copyright (C) 2021 AT&T Intellectual Property. 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END====================================================== + +tmout=120 +cmd= +while getopts c:t: opt; do + case "$opt" in + c) cmd="$OPTARG" ;; + t) tmout="$OPTARG" ;; + esac +done +nargs=$(expr $OPTIND - 1) +shift $nargs + +even_args=$(expr $# % 2) +if [ $# -lt 2 -o $even_args -ne 0 ]; then + echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 + exit 1 +fi + +while [ $# -ge 2 ]; do + export host=$1 + export port=$2 + shift + shift + + echo "Waiting for $host port $port..." + timeout $tmout sh -c 'until nc -vz "$host" "$port"; do echo -n "."; + sleep 1; done' + rc=$? + + if [ $rc != 0 ]; then + echo "$host port $port cannot be reached" + exit $rc + fi +done + +$cmd + +exit 0 diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/commission.yaml b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/commission.yaml index 6d9bdd23..2963a8cb 100644 --- a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/commission.yaml +++ b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/commission.yaml @@ -76,7 +76,7 @@ node_types: requred: true topology_template: node_templates: - org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition: + org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition1: version: 1.2.3 type: org.onap.policy.clamp.controlloop.ControlLoop type_version: 1.0.1 @@ -107,17 +107,18 @@ topology_template: properties: provider: ONAP participant_id: + name: K8sParticipant0 + version: 1.0.0 + participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 - uninitializedToPassiveTimeout: 180 - podStatusCheckInterval: 30 chart: chartId: name: oru-app version: 0.1.0 releaseName: oru-app - # repository can point to a helm repo or a path in local file system where chart is stored - repository: chartmuseum + repository: + repoName: chartmuseum namespace: nonrtric org.onap.domain.linkmonitor.MessageGeneratorK8SMicroserviceControlLoopElement: version: 1.2.3 @@ -127,17 +128,18 @@ topology_template: properties: provider: ONAP participant_id: + name: K8sParticipant0 + version: 1.0.0 + participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 - uninitializedToPassiveTimeout: 180 - podStatusCheckInterval: 30 chart: chartId: name: message-generator version: 0.1.0 releaseName: message-generator - # repository can point to a helm repo or a path in local file system where chart is stored - repository: chartmuseum + repository: + repoName: chartmuseum namespace: nonrtric overrideParams: image.tag: v2 @@ -149,17 +151,18 @@ topology_template: properties: provider: ONAP participant_id: + name: K8sParticipant0 + version: 1.0.0 + participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 - uninitializedToPassiveTimeout: 180 - podStatusCheckInterval: 30 chart: chartId: name: sdnr-simulator version: 0.1.0 releaseName: sdnr-simulator - # repository can point to a helm repo or a path in local file system where chart is stored - repository: chartmuseum + repository: + repoName: chartmuseum namespace: nonrtric org.onap.domain.linkmonitor.DmaapMrK8SMicroserviceControlLoopElement: version: 1.2.3 @@ -169,15 +172,16 @@ topology_template: properties: provider: ONAP participant_id: + name: K8sParticipant0 + version: 1.0.0 + participantType: name: org.onap.k8s.controlloop.K8SControlLoopParticipant version: 2.3.4 - uninitializedToPassiveTimeout: 180 - podStatusCheckInterval: 30 chart: chartId: name: dmaap-mr version: 0.1.0 releaseName: dmaap-mr - # repository can point to a helm repo or a path in local file system where chart is stored - repository: chartmuseum + repository: + repoName: chartmuseum namespace: nonrtric \ No newline at end of file diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation-command.json b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation-command.json index a09c1121..b1da263a 100644 --- a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation-command.json +++ b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation-command.json @@ -1,8 +1,8 @@ { - "orderedState": "RUNNING", + "orderedState": "PASSIVE", "controlLoopIdentifierList": [ { - "name": "LinkMonitorInstance0", + "name": "LinkMonitorInstance1", "version": "1.0.1" } ] diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation.json b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation.json index e80b67f7..ec3b9f15 100644 --- a/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation.json +++ b/test/usecases/oruclosedlooprecovery/scriptversion/controlloop-rest-payloads/instantiation.json @@ -1,18 +1,18 @@ { "controlLoopList": [ { - "name": "LinkMonitorInstance0", + "name": "LinkMonitorInstance1", "version": "1.0.1", "definition": { - "name": "org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition", + "name": "org.onap.domain.linkmonitor.LinkMonitorControlLoopDefinition1", "version": "1.2.3" }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", - "description": "Link Monitor control loop instance 0", + "description": "Link Monitor control loop instance 1", "elements": { - "709c62b3-8918-41b9-a747-d21eb79c6c22": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", + "709c62b3-8918-41b9-a747-d21eb79c6c12": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c12", "definition": { "name": "org.onap.domain.linkmonitor.OruAppK8SMicroserviceControlLoopElement", "version": "1.2.3" @@ -21,12 +21,16 @@ "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", "version": "2.3.4" }, + "participantId": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", "description": "Oru App k8s Control Loop Element" }, - "709c62b3-8918-41b9-a747-d21eb79c6c23": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c23", + "709c62b3-8918-41b9-a747-d21eb79c6c13": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c13", "definition": { "name": "org.onap.domain.linkmonitor.MessageGeneratorK8SMicroserviceControlLoopElement", "version": "1.2.3" @@ -35,12 +39,16 @@ "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", "version": "2.3.4" }, + "participantId": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", "description": "Message Generator k8s Control Loop Element" }, - "709c62b3-8918-41b9-a747-d21eb79c6c24": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c24", + "709c62b3-8918-41b9-a747-d21eb79c6c14": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c14", "definition": { "name": "org.onap.domain.linkmonitor.SdnrSimulatorK8SMicroserviceControlLoopElement", "version": "1.2.3" @@ -49,12 +57,16 @@ "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", "version": "2.3.4" }, + "participantId": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", "description": "Sdnr Simulator k8s Control Loop Element" }, - "709c62b3-8918-41b9-a747-d21eb79c6c25": { - "id": "709c62b3-8918-41b9-a747-d21eb79c6c25", + "709c62b3-8918-41b9-a747-d21eb79c6c15": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c15", "definition": { "name": "org.onap.domain.linkmonitor.DmaapMrK8SMicroserviceControlLoopElement", "version": "1.2.3" @@ -63,6 +75,10 @@ "name": "org.onap.k8s.controlloop.K8SControlLoopParticipant", "version": "2.3.4" }, + "participantId": { + "name": "K8sParticipant0", + "version": "1.0.0" + }, "state": "UNINITIALISED", "orderedState": "UNINITIALISED", "description": "Dmaap Mr k8s Control Loop Element" diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/config/db/bootstrap-database.sh b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/config/db/bootstrap-database.sh index ac2d0a50..6a6310de 100755 --- a/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/config/db/bootstrap-database.sh +++ b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/config/db/bootstrap-database.sh @@ -24,5 +24,5 @@ ### mysql -uroot -p$MYSQL_ROOT_PASSWORD -f < /docker-entrypoint-initdb.d/create-db.sql -mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY';" -mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "GRANT ALL PRIVILEGES ON controlloop.* TO 'policy'@'%';" \ No newline at end of file +mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "CREATE USER 'policy_user'@'%' IDENTIFIED BY 'policy_user';" +mysql -uroot -p$MYSQL_ROOT_PASSWORD --execute "GRANT ALL PRIVILEGES ON controlloop.* TO 'policy_user'@'%';" \ No newline at end of file diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/docker-compose.yml b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/docker-compose.yml index 47fab679..80d5186f 100644 --- a/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/docker-compose.yml +++ b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/docker-compose.yml @@ -35,7 +35,7 @@ services: expose: - 3306 controlloop-runtime: - image: nexus3.onap.org:10001/onap/policy-controlloop-runtime:6.1.2-SNAPSHOT + image: nexus3.onap.org:10001/onap/policy-clamp-cl-runtime:6.1.3 container_name: controlloop-runtime depends_on: - mariadb @@ -45,28 +45,57 @@ services: expose: - 6969 volumes: - - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore.jks:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + - ./wait_for_port.sh:/opt/app/policy/clamp/bin/wait_for_port.sh:ro environment: - TOPICSERVER=onap-dmaap - MARIADB_HOST=mariadb - MARIADB_PORT=3306 + - KEYSTORE=/opt/app/policy/clamp/etc/ssl/policy-keystore + - KEYSTORE_PASSWD=Pol1cy_0nap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_SERVERS_0=onap-dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_TOPICCOMMINFRASTRUCTURE=dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_FETCHTIMEOUT=15000 + - RUNTIME_TOPICPARAMETERGROUP_TOPICSOURCES_0_USEHTTPS=false + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_SERVERS_0=onap-dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_TOPICCOMMINFRASTRUCTURE=dmaap + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_FETCHTIMEOUT=15000 + - RUNTIME_TOPICPARAMETERGROUP_TOPICSINKS_0_USEHTTPS=false + entrypoint: /opt/app/policy/clamp/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/clamp/bin/controlloop-runtime.sh', + 'mariadb', '3306', + 'onap-dmaap', '3904' + ] k8s-participant: - image: nexus3.onap.org:10001/onap/kubernetes-participant:6.1.2-SNAPSHOT + image: nexus3.onap.org:10001/onap/policy-clamp-cl-k8s-ppnt:6.1.3 container_name: k8s-participant depends_on: - mariadb - controlloop-runtime - - chartmuseum hostname: k8s-participant volumes: - - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore.jks:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro - ./../helm:/home/policy/helm + - ./wait_for_port.sh:/opt/app/policy/clamp/bin/wait_for_port.sh:ro - :/home/policy/.kube/config:ro environment: - TOPICSERVER=onap-dmaap - - KEYSTORE=/opt/app/policy/clamp/etc/ssl/policy-keystore.jks + - KEYSTORE=/opt/app/policy/clamp/etc/ssl/policy-keystore - KEYSTORE_PASSWD=Pol1cy_0nap - entrypoint: sh -c "/home/policy/helm/chartmuseum_init.sh && /opt/app/policy/clamp/bin/kubernetes-participant.sh" + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_SERVERS_0=onap-dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_TOPICCOMMINFRASTRUCTURE=dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_FETCHTIMEOUT=15000 + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSOURCES_0_USEHTTPS=false + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_TOPIC=POLICY-CLRUNTIME-PARTICIPANT + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_SERVERS_0=onap-dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_TOPICCOMMINFRASTRUCTURE=dmaap + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_FETCHTIMEOUT=15000 + - PARTICIPANT_INTERMEDIARYPARAMETERS_CLAMPCONTROLLOOPTOPICS_TOPICSINKS_0_USEHTTPS=false + entrypoint: sh -c "/opt/app/policy/clamp/bin/wait_for_port.sh controlloop-runtime 6969 && /home/policy/helm/chartmuseum_init.sh && /opt/app/policy/clamp/bin/kubernetes-participant.sh" chartmuseum: image: ghcr.io/helm/chartmuseum:v0.13.1 container_name: chartmuseum diff --git a/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/wait_for_port.sh b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/wait_for_port.sh new file mode 100755 index 00000000..aec5f222 --- /dev/null +++ b/test/usecases/oruclosedlooprecovery/scriptversion/docker-compose-controlloop/wait_for_port.sh @@ -0,0 +1,56 @@ +#!/bin/sh +# ============LICENSE_START==================================================== +# Copyright (C) 2021 AT&T Intellectual Property. 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END====================================================== + +tmout=120 +cmd= +while getopts c:t: opt; do + case "$opt" in + c) cmd="$OPTARG" ;; + t) tmout="$OPTARG" ;; + esac +done +nargs=$(expr $OPTIND - 1) +shift $nargs + +even_args=$(expr $# % 2) +if [ $# -lt 2 -o $even_args -ne 0 ]; then + echo "args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ..." >&2 + exit 1 +fi + +while [ $# -ge 2 ]; do + export host=$1 + export port=$2 + shift + shift + + echo "Waiting for $host port $port..." + timeout $tmout sh -c 'until nc -vz "$host" "$port"; do echo -n "."; + sleep 1; done' + rc=$? + + if [ $rc != 0 ]; then + echo "$host port $port cannot be reached" + exit $rc + fi +done + +$cmd + +exit 0