Update docs for CLAMP Automation Composition Smoke Tests 72/137872/1
authorFrancescoFioraEst <francesco.fiora@est.tech>
Thu, 9 May 2024 16:07:19 +0000 (17:07 +0100)
committerFrancesco Fiora <francesco.fiora@est.tech>
Thu, 9 May 2024 16:11:38 +0000 (16:11 +0000)
Issue-ID: POLICY-4992
Change-Id: I47736726a7c4d464225569af2b7a7502d9feeedd
Signed-off-by: FrancescoFioraEst <francesco.fiora@est.tech>
docs/development/devtools/smoke/clamp-smoke.rst
docs/development/devtools/smoke/files/docker-compose-local.yaml [new file with mode: 0644]
docs/development/devtools/smoke/files/mariadb.sql [new file with mode: 0644]
docs/development/devtools/smoke/files/participant-sim-application.yaml [new file with mode: 0644]
docs/development/devtools/smoke/files/runtime-application.yaml [new file with mode: 0644]

index 19f4a21..2f4a7c9 100644 (file)
@@ -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 (file)
index 0000000..5ee39f6
--- /dev/null
@@ -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 (file)
index 0000000..95c4c76
--- /dev/null
@@ -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 (file)
index 0000000..2d23c12
--- /dev/null
@@ -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 (file)
index 0000000..f798d5b
--- /dev/null
@@ -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