You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 53 Next »

Setting up SDNC, RAN-sim controller and Honeycomb simulator locally:

SDNC setup

To setup SDNC, firstly download these 2 files:

  1. certs.tar
  2. docker-compose.yml

Unzip certs.tar to the same folder as where you put the downloaded, docker-compose.yml file.

From the same folder as above, run the following command to setup SDNC.

Docker command
docker-compose up -d

SDNC should be up, when this command has ran successfully. 

RAN-sim controller setup

To set up RAN-sim controller follow the steps provided in this page RAN-Sim setup or use the steps below.

  1. Clone and Checkout Ran-Sim Controllergit clone "https://gerrit.onap.org/r/integration/simulators/ran-simulator"
  2. Pull the pre-built docker image using the command 

    Docker pull command for ransim controller
    docker pull docker.io/shsubedi/ransimcontroller:v1
  3. Use the following command to tag the image

    Docker tag command
    docker tag shsubedi/ransimcontroller:v1 onap/ransim:1.0.0-SNAPSHOT
  4. Navigate to '<YOUR_DIRECTORY>/ran-simulator/ransim/docker' directory
  5. Modify the docker-compose.yml file, update the SDNR_IP and SDNR_PORT
    To get the SDNR_IP, run the following command

    Inspect SDNC ip
    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <SDNC_CONTAINER_ID>


    SDNR_IP=<SDNC_IP>
    SDNR_PORT=8282

  6. Run the 'docker-compose up -d' command from the '<YOUR_DIRECTORY>/ran-simulator/ransim/docker' directory
    ransim and mariadb should come up, when this command has ran successfully.

Honeycomb simulator setup

To set up the Honeycomb simulator, follow the steps below or the steps in this page Core & RAN Simulators.

  1. Pull the custom honeycomb docker image using the command

    Docker pull command
    docker pull docker.io/tragait/gnbsim:v1
  2. Clone/download https://github.com/onap-oof-pci-poc/ran-sim
  3. Update ransim and honeycom IP address at '<YOUR_DIRECTORY>/ran-sim/hcsim-content/gnbsim/hc/config/gnbsim.json'
    Make sure the following are updated to.
    To get the ransimIp and hcIp do the following:

    Inspect ransim ip
    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <ransim_CONTAINER_ID>
    • "ransimIp": <ransimIP>
    • "ransimPort": 8081
    • "hcIp": <ransimIP>
    • "hcPort": 2831
  4. Update the image name in the '<YOUR_DIRECTORY>/ran-sim/hcsim-content/gnbsim/hc/docker-compose.yml' to:
    • image: tragait/gnbsim:v1
  5. Run the below command from '<YOUR_DIRECTORY>/ran-sim/hcsim-content/gnbsim/hc' directory

    Docker compose up command
    docker-compose up -d

    While running the docker-compose up -d command, these servers will be mounted in SDNC 
    In case these servers are not mounted in SDNC, you can use the following curl command to mount the HC sim.
    To get the ip of the hc sim do the following:

    Inspect hc ip
    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <hc_CONTAINER_ID>

    Make sure to modify the below curl command, replace HC_SIM_IP with the ip retrieved from previous command.
    Note. If using WSL 2  then the HC_SIM_IP in the below curl command can be replaced with ip address got from doing : 

    wsl hostname -I in the windows powershell. 

    HC sim mount command
    curl -i -X PUT http://localhost:8282/restconf/config/network-topology:network-topology/topology/topology-netconf/node/hc -k -H 'Accept: application/xml' -H 'Content-Type: text/xml' --user "admin":"Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U"  -d '<node xmlns="urn:TBD:params:xml:ns:yang:network-topology"> <node-id>hc</node-id> <host xmlns="urn:opendaylight:netconf-node-topology">HC_SIM_IP</host>  <port xmlns="urn:opendaylight:netconf-node-topology">2831</port>  <username xmlns="urn:opendaylight:netconf-node-topology">admin</username>  <password xmlns="urn:opendaylight:netconf-node-topology">admin</password>  <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>  <!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->  <reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>  <connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>  <max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">0</max-connection-attempts>  <between-attempts-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">2000</between-attempts-timeout-millis>  <sleep-factor xmlns="urn:opendaylight:netconf-node-topology">1.5</sleep-factor>  <!-- keepalive-delay set to 0 turns off keepalives-->  <keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay></node>'
  6. Check using 'docker container ls' that the honeycomb simulator is up and running.

Once the above steps have been completed, check if the honeycomb simulator has been mounted in SDNC by going to the following link and clicking on the Mounted Resources section:
 http://localhost:8282/apidoc/explorer/index.html
Note. If using WSL 2 then the localhost can be replaced with ip address got from doing :
wsl hostname -I in the windows powershell. 

  • Credentials  : - admin / Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U

Setting up SDNC, CPS & NCMP, DMI-Plugin and netconf-pnp-simulator locally:

Download the following zip file and extract it. 

Navigate to the folder where the files were extracted and run the below command from '<sim/>' directory

Docker compose command from sim folder
docker-compose up -d

Then navigate to the folder where the files were extracted and run the below command.

Create a docker network
docker network create test_network

Then run the following command.

docker compose command
docker-compose up -d

Check using 'docker container ls' that SDNC, CPS&NCMP, DMI-Plugin and netconf-pnp-simulator are up and running.

Running CSIT tests locally within CPS

If using Windows, first install WSL using the following command within Powershell as an administrator and restart your machine (If using a Linux environment, these steps can be skipped)

Docker compose command from sim folder
wsl --install

Enable WSL 2 and run the following command within Powershell as an administrator and restart your machine.

Docker compose command from sim folder
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Download and install the Linux kernel update package

Set WSL 2 as the default Linux distribution

Docker compose command from sim folder
wsl --set-default-version 2

Install Ubuntu 20.04 for Windows from the Microsoft store

Once this is launched, it will then install the Ubuntu Machine, this may take a few minutes.

You will need to set your Unix Username and Password.

  • Remember your password, you will need it for SUDO commands!

Next step is to setup docker desktop with WSL2

Download and install docker desktop at 

Once docker desktop is installed go to Settings>General and check 'Use the WSL 2 based engine'. Click apply and restart

Once restated, go to Settings>Resources>WSL Integration and check 'Enable Integration with my default WSL distro' and enable your integration

Click Apply & Restart

From your Linux/WSL terminal

Update package index

sudo apt update

Install Python3

sudo apt install python3

Install pip

sudo apt install python3-pip

Upgrade pip

sudo pip3 install --upgrade pip

Install Robot Framework

pip3 install robotframework

Install git

sudo apt install git

Install maven

sudo apt install maven

Clone CPS and Dmi Plugin repos to home directory

Note - You will need to set up your ssh key as outlined here Setting Up Your Development Environment

Copy the settings.xml file from the oparent repo to your .m2 folder located within your home directory

Note - This folder will be hidden, but it should exist once you have maven installed!

Verify the docker daemon is accepting connections.

docker ps

If you see this error

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Issue the following command

sudo chmod 666 /var/run/docker.sock

Do a mvn clean install on both directories to pull down the necessary libraries from the POM.

Navigate to csit directory.

Run the following script

sudo bash run-project-csit.sh

Note - The first time this runs it will download all the libraries defined in the CSTI scripts. This may take awhile be patient (smile)

Once the scripts have run, the output should look like the following


As part of this process docker containers are created for cps-and-ncmp, dbpostgresql, ncmp-dmi-plugin, mariadb and sdnc, once the testing is finished these docker containers are stopped and removed.

To prevent these docker containers from being stopped as part of this process for any reason, within the teardown.sh script located in cps/csit/plans/cps comment out the following line.

Potential issues

This issue may also appear when running the scripts from a windows WSL environment

Error response from daemon: invalid IP address in add-host: ""

To resolve this, do the following:

Issue the following command

sudo apt install net-tools
ifconfig

From the eth0 configuration take the inet address

And manually add this address to the LOCAL_IP variable within the setup.sh script located in the following directory cps/csit/plans/cps

Save this configuration.

Run scripts again.

If your tests don't run after doing this, as seen above check for this error.

/tmp/tmp.rgIeMxiRCGrobot_venv/bin/python: Error while finding module specification for 'robot.run' (ModuleNotFoundError: No module named 'robot')

In the file run-csit.sh located within the cps/csit directory

Look for the following line.

python -m robot.run -N ${TESTPLAN} -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${TESTOPTIONS} ${SUITES}

Change this to

python3 -m robot.run -N ${TESTPLAN} -v WORKSPACE:/tmp ${ROBOT_VARIABLES} ${TESTOPTIONS} ${SUITES}

Run scripts again

If there is further issues downloading libraries due to the system date being out of sync with windows issue the following command and run the scripts again.

sudo hwclock --hctosys

FAQ

How to fix "Error: could not open `{argLine}'when running unit tests from Intellij IDE ?

If not able to run unit tests from Intellj unit tests tool because of this error

Error: could not open `{argLine}'

Process finished with exit code 1

Then review maven-surefire-plugin integration with Intellij:

  • Go to Settings-> Build,Execution,Deployment -> Build Tools -> Maven -> Running Tests
  • Uncheck argLine


  • No labels