summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/development/devtools/smoke/clamp-smoke.rst324
-rw-r--r--docs/development/devtools/smoke/files/docker-compose-local.yaml36
-rw-r--r--docs/development/devtools/smoke/files/mariadb.sql3
-rw-r--r--docs/development/devtools/smoke/files/participant-sim-application.yaml22
-rw-r--r--docs/development/devtools/smoke/files/runtime-application.yaml22
5 files changed, 175 insertions, 232 deletions
diff --git a/docs/development/devtools/smoke/clamp-smoke.rst b/docs/development/devtools/smoke/clamp-smoke.rst
index 19f4a214..2f4a7c9f 100644
--- a/docs/development/devtools/smoke/clamp-smoke.rst
+++ b/docs/development/devtools/smoke/clamp-smoke.rst
@@ -24,240 +24,81 @@ This article assumes that:
The procedure documented in this article has been verified using Ubuntu 20.04 LTS VM.
-Cloning CLAMP automation composition and all dependency
-*******************************************************
+Cloning CLAMP automation composition
+************************************
Run a script such as the script below to clone the required modules from the `ONAP git repository <https://gerrit.onap.org/r/admin/repos/q/filter:policy>`_. This script clones CLAMP automation composition and all dependency.
-ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the ONAP ECOMP SDK *ecompsdkos* module, and the A&AI Schema module.
-
-
.. code-block:: bash
- :caption: Typical ONAP Policy Framework Clone Script
- :linenos:
-
- #!/usr/bin/env bash
-
- ## script name for output
- MOD_SCRIPT_NAME='basename $0'
-
- ## the ONAP clone directory, defaults to "onap"
- clone_dir="onap"
-
- ## the ONAP repos to clone
- onap_repos="\
- policy/parent \
- policy/common \
- policy/models \
- policy/clamp "
-
- ##
- ## Help screen and exit condition (i.e. too few arguments)
- ##
- Help()
- {
- echo ""
- echo "$MOD_SCRIPT_NAME - clones all required ONAP git repositories"
- echo ""
- echo " Usage: $MOD_SCRIPT_NAME [-options]"
- echo ""
- echo " Options"
- echo " -d - the ONAP clone directory, defaults to '.'"
- echo " -h - this help screen"
- echo ""
- exit 255;
- }
-
- ##
- ## read command line
- ##
- while [ $# -gt 0 ]
- do
- case $1 in
- #-d ONAP clone directory
- -d)
- shift
- if [ -z "$1" ]; then
- echo "$MOD_SCRIPT_NAME: no clone directory"
- exit 1
- fi
- clone_dir=$1
- shift
- ;;
-
- #-h prints help and exists
- -h)
- Help;exit 0;;
-
- *) echo "$MOD_SCRIPT_NAME: undefined CLI option - $1"; exit 255;;
- esac
- done
-
- if [ -f "$clone_dir" ]; then
- echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as file"
- exit 2
- fi
- if [ -d "$clone_dir" ]; then
- echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as directory"
- exit 2
- fi
-
- mkdir $clone_dir
- if [ $? != 0 ]
- then
- echo cannot clone ONAP repositories, could not create directory '"'$clone_dir'"'
- exit 3
- fi
-
- for repo in $onap_repos
- do
- repoDir=`dirname "$repo"`
- repoName=`basename "$repo"`
-
- if [ ! -z $dirName ]
- then
- mkdir "$clone_dir/$repoDir"
- if [ $? != 0 ]
- then
- echo cannot clone ONAP repositories, could not create directory '"'$clone_dir/repoDir'"'
- exit 4
- fi
- fi
-
- git clone https://gerrit.onap.org/r/${repo} $clone_dir/$repo
- done
-
- echo ONAP has been cloned into '"'$clone_dir'"'
-
-
-Execution of the script above results in the following directory hierarchy in your *~/git* directory:
-
- * ~/git/onap
- * ~/git/onap/policy
- * ~/git/onap/policy/parent
- * ~/git/onap/policy/common
- * ~/git/onap/policy/models
- * ~/git/onap/policy/clamp
-
-
-Building CLAMP automation composition and all dependency
-********************************************************
-
-**Step 1:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository.
-
- .. code-block:: bash
-
- rm -fr ~/.m2/repository/org/onap
+ cd ~/git
+ git clone https://gerrit.onap.org/r/policy/clamp clamp
-**Step 2:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*.
-.. code-block:: xml
- :caption: Typical pom.xml to build the ONAP Policy Framework
- :linenos:
+Execution of the command above results in the following directory hierarchy in your *~/git* directory:
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.onap</groupId>
- <artifactId>onap-policy</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <packaging>pom</packaging>
- <name>${project.artifactId}</name>
- <inceptionYear>2023</inceptionYear>
- <organization>
- <name>ONAP</name>
- </organization>
+ * ~/git/clamp
- <modules>
- <module>parent</module>
- <module>common</module>
- <module>models</module>
- <module>clamp</module>
- </modules>
- </project>
+Building CLAMP automation composition
+*************************************
-**Step 3:** You can now build the Policy framework.
+**Step 1:** Setting topicParameterGroup for kafka localhost.
+It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server.
+In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below:
-Build java artifacts only:
+.. literalinclude:: files/runtime-application.yaml
+ :language: yaml
- .. code-block:: bash
+Same changes (in the 'participant' parameters section) may need to be apply into the file 'participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml'.
- cd ~/git/onap/policy
- mvn clean install
+.. literalinclude:: files/participant-sim-application.yaml
+ :language: yaml
-Build with docker images:
+**Step 2:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository.
.. code-block:: bash
- cd ~/git/onap/policy/clamp/packages/
- mvn clean install -P docker
-
- cd ~/git/onap/policy/models/models-sim/packages
- mvn clean install -P docker
-
-Running MariaDb and DMaaP Simulator
-***********************************
-
-Running a MariaDb Instance
-++++++++++++++++++++++++++
+ rm -fr ~/.m2/repository/org/onap
-Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, one of them is a
-running MariaDb database instance. The easiest way to do this is to run the docker image locally.
-A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*.
+**Step 3:** You can now build the Policy framework.
- .. code-block:: SQL
+Build java artifacts only:
- create database clampacm;
- CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY';
- GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%';
+ .. code-block:: bash
+ cd ~/git/clamp
+ mvn clean install -DskipTests
-Execution of the command above results in the creation and start of the *mariadb-smoke-test* container.
+Build with docker images:
.. code-block:: bash
- cd ~/git
- docker run --name mariadb-smoke-test \
- -p 3306:3306 \
- -e MYSQL_ROOT_PASSWORD=my-secret-pw \
- --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \
- -d mariadb:10.10.2 \
- --lower-case-table-names=1
+ cd ~/git/clamp/packages/
+ mvn clean install -P docker
+Running MariaDb and Kafka
+*************************
-Running the DMaaP Simulator during Development
-++++++++++++++++++++++++++++++++++++++++++++++
-The second requirement for the Clamp automation composition component to run is to run the DMaaP simulator. You can run it from the command line using Maven.
+Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, MariaDb database and Kafka/Zookeeper. The easiest way to do this is to run a docker compose locally.
+A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*.
-Create a new configuration file *~/git/onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json* using the below code:
+.. literalinclude:: files/mariadb.sql
+ :language: SQL
-.. code-block:: json
+Create the '*docker-compose.yaml*' using following code:
- {
- "dmaapProvider": {
- "name": "DMaaP simulator",
- "topicSweepSec": 900
- },
- "restServers": [
- {
- "name": "DMaaP simulator",
- "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1",
- "host": "localhost",
- "port": 3904,
- "https": false
- }
- ]
- }
+.. literalinclude:: files/docker-compose-local.yaml
+ :language: yaml
-Run the following commands:
+Run the docker composition:
.. code-block:: bash
- cd ~/git/onap/policy/models/models-sim/policy-models-simulators
- mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/newParameters.json"
+ cd ~/git/
+ docker compose up
Developing and Debugging CLAMP automation composition
@@ -270,7 +111,7 @@ Once the mariadb and DMaap simulator are up and running, run the following comma
.. code-block:: bash
- cd ~/git/onap/policy/clamp/runtime-acm
+ cd ~/git/clamp/runtime-acm
mvn spring-boot:run
@@ -279,84 +120,103 @@ Running on the Command Line
.. code-block:: bash
- cd ~/git/onap/policy/clamp/runtime-acm
- java -jar target/policy-clamp-runtime-acm-6.4.2-SNAPSHOT.jar
-
-
-Running in Eclipse
-++++++++++++++++++
-
-1. Check out the policy models repository
-2. Go to the *policy-clamp-runtime-acm* module in the clamp repo
-3. Where necessary Add as Source Folder 'target/generated-sources/swagger'
-4. Specify a run configuration using the class *org.onap.policy.clamp.acm.runtime.Application* as the main class
-5. Run the configuration
-
-Swagger UI of Automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html*
+ cd ~/git/clamp/runtime-acm
+ java -jar target/policy-clamp-runtime-acm-7.1.3-SNAPSHOT.jar
-Running one or more participants
-++++++++++++++++++++++++++++++++
-
-Into :ref:`HTTP Participant <clamp-acm-http-participant>` you can find a test case with http-participant.
+Running participant simulator
++++++++++++++++++++++++++++++
Run the following commands:
.. code-block:: bash
- cd ~/git/onap/policy/clamp/participant/participant-impl/participant-impl-http
- java -jar target/policy-clamp-participant-impl-http-6.4.2-SNAPSHOT.jar
+ cd ~/git/clamp/participant/participant-impl/participant-impl-simulator
+ java -jar target/policy-clamp-participant-impl-simulator-7.1.3-SNAPSHOT.jar
Running the CLAMP automation composition docker image
+++++++++++++++++++++++++++++++++++++++++++++++++++++
-Create the '*docker-composition.yaml*' using following code:
+Create the '*docker-compose.yaml*' using following code:
.. code-block:: yaml
- version: '3.1'
-
services:
mariadb:
image: mariadb:10.10.2
+ command: ['mysqld', '--lower_case_table_names=1']
volumes:
- type: bind
source: ./mariadb.sql
target: /docker-entrypoint-initdb.d/data.sql
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
- - lower-case-table-names=1
ports:
- "3306:3306"
+ zookeeper:
+ image: confluentinc/cp-zookeeper:latest
+ environment:
+ ZOOKEEPER_CLIENT_PORT: 2181
+ ZOOKEEPER_TICK_TIME: 2000
+ ports:
+ - 2181:2181
+ kafka:
+ image: confluentinc/cp-kafka:latest
+ container_name: kafka
+ depends_on:
+ - zookeeper
+ ports:
+ - 29092:29092
+ - 9092:9092
+ environment:
+ KAFKA_BROKER_ID: 1
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
+ KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
+ KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
+
runtime-acm:
image: onap/policy-clamp-runtime-acm
+ depends_on:
+ - zookeeper
+ - kafka
+ - mariadb
environment:
- - mariadb.host=mariadb
- - topicServer=message-router
+ MARIADB_HOST: mariadb
+ TOPICSERVER: kafka:9092
+ SERVER_SSL_ENABLED: false
volumes:
- type: bind
- source: ./onap/policy/clamp/runtime-acm/src/main/resources/application.yaml
+ source: ./clamp/runtime-acm/src/main/resources/application.yaml
target: /opt/app/policy/clamp/etc/AcRuntimeParameters.yaml
ports:
- "6969:6969"
- message-router:
- image: onap/policy-models-simulator
+ participant-simulator:
+ image: onap/policy-clamp-ac-sim-ppnt
+ depends_on:
+ - zookeeper
+ - kafka
+ environment:
+ MARIADB_HOST: mariadb
+ TOPICSERVER: kafka:9092
+ SERVER_SSL_ENABLED: false
volumes:
- type: bind
- source: ./onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json
- target: /opt/app/policy/simulators/etc/mounted/simParameters.json
- ports:
- - "3904:3904"
+ source: ./clamp/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml
+ target: /opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml
+ ports:
+ - "8085:8085"
Run the docker composition:
.. code-block:: bash
cd ~/git/
- docker-compose up
+ docker compose up
Swagger UI of automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html*
diff --git a/docs/development/devtools/smoke/files/docker-compose-local.yaml b/docs/development/devtools/smoke/files/docker-compose-local.yaml
new file mode 100644
index 00000000..5ee39f67
--- /dev/null
+++ b/docs/development/devtools/smoke/files/docker-compose-local.yaml
@@ -0,0 +1,36 @@
+services:
+ mariadb:
+ image: mariadb:10.10.2
+ command: ['mysqld', '--lower_case_table_names=1']
+ volumes:
+ - type: bind
+ source: ./mariadb.sql
+ target: /docker-entrypoint-initdb.d/data.sql
+ environment:
+ - MYSQL_ROOT_PASSWORD=my-secret-pw
+ ports:
+ - "3306:3306"
+
+ zookeeper:
+ image: confluentinc/cp-zookeeper:latest
+ environment:
+ ZOOKEEPER_CLIENT_PORT: 2181
+ ZOOKEEPER_TICK_TIME: 2000
+ ports:
+ - 2181:2181
+
+ kafka:
+ image: confluentinc/cp-kafka:latest
+ container_name: kafka
+ depends_on:
+ - zookeeper
+ ports:
+ - 29092:29092
+ - 9092:9092
+ environment:
+ KAFKA_BROKER_ID: 1
+ KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
+ KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
+ KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
+ KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
diff --git a/docs/development/devtools/smoke/files/mariadb.sql b/docs/development/devtools/smoke/files/mariadb.sql
new file mode 100644
index 00000000..95c4c766
--- /dev/null
+++ b/docs/development/devtools/smoke/files/mariadb.sql
@@ -0,0 +1,3 @@
+create database clampacm;
+CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY';
+GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%';
diff --git a/docs/development/devtools/smoke/files/participant-sim-application.yaml b/docs/development/devtools/smoke/files/participant-sim-application.yaml
new file mode 100644
index 00000000..2d23c12c
--- /dev/null
+++ b/docs/development/devtools/smoke/files/participant-sim-application.yaml
@@ -0,0 +1,22 @@
+
+participant:
+ intermediaryParameters:
+ reportingTimeIntervalMs: 120000
+ description: Participant Description
+ participantId: 101c62b3-8918-41b9-a747-d21eb79c6c90
+ clampAutomationCompositionTopics:
+ topicSources:
+ - topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ fetchTimeout: 15000
+ topicSinks:
+ - topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ participantSupportedElementTypes:
+ -
+ typeName: org.onap.policy.clamp.acm.SimAutomationCompositionElement
+ typeVersion: 1.0.0
diff --git a/docs/development/devtools/smoke/files/runtime-application.yaml b/docs/development/devtools/smoke/files/runtime-application.yaml
new file mode 100644
index 00000000..f798d5bb
--- /dev/null
+++ b/docs/development/devtools/smoke/files/runtime-application.yaml
@@ -0,0 +1,22 @@
+
+runtime:
+ participantParameters:
+ heartBeatMs: 20000
+ maxStatusWaitMs: 200000
+ topicParameterGroup:
+ topicSources:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ fetchTimeout: 15000
+ topicSinks:
+ -
+ topic: policy-acruntime-participant
+ servers:
+ - ${topicServer:localhost:29092}
+ topicCommInfrastructure: kafka
+ acmParameters:
+ toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement
+ toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition