Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Note

This page is Work in Progress


Warning

This page is not updated for Istanbul, the information below this point may or may not be correct for Istanbul.

This page documents how to get CLAMP up and running on a local machine and also how to get CLAMP loaded and set up in an IDE. We may use the information on this page as input for a page in the CLAMP documentation.

...

In order to run the unit tests locally, you need to run an instance of MariaDB and an instance of the emulator for the REST endpoints CLAMP uses. You also need to set the values some variables in a number of configuration files. These values are automatically generated in the maven build but need to be set manually when running tests locally.

Info

If you follow the steps here, all the tests will pass in a Linux environment. In Windows and Mac environments, the Robot test case will not pass because Host Networking is not supported in Docker on WIndows and Mac. The robot test framework cannot reach "localhost" endpoints on the host machine.


  1. Open a console and go into the directory extra/bin-Open a console and go into the directory extra/bin-for-dev

    Code Block
    languagebash
    cd extra/bin-for-dev


  2. Start an instance of the CLAMP MaraDB database in Docker using the helper script. This script uses docker-compose to bring up an instance of the CLAMP MariaDB.

    Code Block
    languagebash
    ./start-db.sh


  3. Start an instance of the CLAMP endpoint emulator in Docker using the helper script. This script uses docker-compose to bring up an instance of the CLAMP endpoint emulator.

    Code Block
    languagebash
    ./start-emulator.sh


  4. Check that the database and emulator are running

    Code Block
    languagebash
    docker ps

    You should see the two images running

    Code Block
    languagebash
    CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
    93cffd7e7d2e        python:2-slim       "/bin/sh -c 'pip ins…"   7 seconds ago        Up 7 seconds        0.0.0.0:8085->8085/tcp   clamp_third-party-proxy_1
    0b26d68f4048        mariadb:10.5.4      "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp   clamp_db_1
    
    


  5. In the file src/test/resources/application.properties

    :Change all occurrences of the string "

    , run this sed command or make the changes below in a text editor:

    Code Block
    languagebash
    sed -e 's/${clamp\.it\.tests\.http}
    " to "8080"Change all occurrences of the string "
    /8080/g' -e 's/${docker\.http-cache\.port\.host}
    " to "8085"Change all occurrences of the string "
    /8085/g' -e 's/${docker\.mariadb\.port\.host}
    " to "3306"In the file src/
    /3306/g' -i src/test/resources/
    https/https-test
    application.properties
    :


    1. Change all occurrences of the string "${clamp.it.tests.httpshttp}" to "8080" (Any free port value)
    2. Change all occurrences of the string "${clampdocker.ithttp-cache.testsport.http-redirectedhost}" to "80808085"
    3. Change all occurrences of the string "${docker.mariadb.port.host}" to "3306"
  6. In the file src/test/resources/https/https-test.properties, run this sed command or make the changes below in a text editor:

    Code Block
    languagebash
    sed -e 's/${clamp\.it\.tests\.https}/8090/g' -e 's/${clamp\.it\.tests\.http-redirected}/8080/g' -e 's/${docker\.mariadb\.port\.host}/3306/g' -i src/test/resources/https/https-test.properties


    1. Change all occurrences of the string "${clamp.it.tests.https}" to "8090" (Any free port value)
    2. Change all occurrences of the string "${clamp.it.tests.http-redirected}" to "8080"
    3. Change all occurrences of the string "${docker.mariadb.port.host}" to "3306"
  7.  In the file src/test/resources/robotframework/robotframework-test.properties, run this sed command or make the changes below in a text editor:

    Code Block
    languagebash
    sed -e 's/${clamp\.it\.tests\.robotframework\.http}/8080/g' -e 's/${docker\.http-cache\.port\.host}/8085/g' -e 's/${docker\.mariadb\.port\.host}/3306/g' -i src/test/resources/robotframework/robotframework-test.properties


    1. Change all occurrences of the string "${clamp.it.tests.robotframework.http}" to "8080" (Any free port value)
    2. Change all occurrences of the string "${docker.http-cache.port.host}" to "8085"
    3. Change all occurrences of the string "${docker.mariadb.port.host}" to "3306"

Building ControlLoop docker images in CLAMP

Control loop docker images are built in clamp/packages and pushed to ONAP nexus docker registry nexus3.onap.org:10003
using maven command.

Steps are depicted as below:

  1. Open a console and go into the directory clamp/packages

    Code Block
    $cd clamp/packages


  2. Run below command

    Code Block
    $mvn clean install -P docker

    Note: This command when run from clamp main directory will build all docker images of Clamp. When run in clamp/packages folder will build
    ControlLoop docker images alone.

  3. There is a fabric8, docker-maven-plugin in clamp/packages/policy-clamp-docker/pom.xml which builds 3 docker images and pushes to ONAP nexus docker registry nexus3.onap.org:10003

    Code Block
    onap/policy-clamp-cl-runtime
    onap/policy-clamp-cl-k8s-ppnt
    onap/policy-clamp-cl-http-ppnt
    onap/policy-clamp-cl-pf-ppnt


  4. Configuration to build docker images is present in following files

    Code Block
    $cd clamp/packages/policy-clamp-docker/src/main/docker


  5. Docker images once built can be brought up manually on localhost using docker commands, or through docker-compose in CSIT
    Clone policy docker repo

    Code Block
    $cd docker/csit/
    $./run-project-csit.sh clamp

    Note: More detailed information on CSIT is in Testing CLAMP

  6. Docker images from docker-compose file in /policy/docker/csit for clamp

    Code Block
    $docker ps
    CONTAINER ID   IMAGE                                                                    COMMAND                  CREATED          STATUS          PORTS                               NAMES
    b2266ab66cbc   onap/policy-clamp-cl-runtime:latest                                      "/opt/app/policy/bin…"   28 seconds ago   Up 27 seconds   6970/tcp                            policy-controlloop-runtime
    c6475277e750   policy-clamp-cl-pf-ppnt:latest                                           "/opt/app/policy/bin…"   29 seconds ago   Up 28 seconds   6972/tcp                            policy-participant
    5a83596fd963   nexus3.onap.org:10001/onap/policy-api:2.5-SNAPSHOT-latest                "./wait_for_port.sh …"   30 seconds ago   Up 29 seconds   6969/tcp                            policy-api
    77746467d139   onap/policy-clamp-cl-k8s-ppnt:latest                                     "/opt/app/policy/bin…"   30 seconds ago   Up 29 seconds   6971/tcp                            kubernetes-participant
    6053cdad35fd   nexus3.onap.org:10001/onap/policy-models-simulator:2.5-SNAPSHOT-latest   "bash simulators.sh"     31 seconds ago   Up 30 seconds   3905/tcp, 6666/tcp, 6668-6670/tcp   simulator
    17cf42071531   nexus3.onap.org:10001/mariadb:10.5.8                                     "docker-entrypoint.s…"   32 seconds ago   Up 30 seconds   3306/tcp                            mariadb