This user guide explains how to launch the pnc-simulator/ACTN simulator and initialize it with administrative APIs. "pnc-simulator" is our internal project name for ACTN simulator. Throughout this guide, terms "pnc-simulator", "ACTN simulator" and "the simulator" are used interchangeably.
Step 1. Fetch the simulator docker image
First, pull down the simulator image from public docker hub.
docker pull dzhanghuawei/pncsimulator:latest
Step 2. Start the simulator container(s)
After compiling the pnc-simulator image locally or fetching the docker image from remote registry, execute the command below to start the container:
docker run –p 18181:8181 –d –name pncsimu-18181 –t dzhanghuawei/pncsimulator:latest
It should be noted that, we redirect the request from host:18181 to container:8181. You can configure whatever port, mapping to container:8181 at your discretion. Be careful, if setting up multiple domain controllers, make sure to assign different external ports for them.
After starting the container, you should be able to verify the running container by:
docker container ps –a | grep pncsimu
Step 3. Initialize the simulator(s)
The simulator offers a set of administrative APIs which are designed for initialization and management purposes.
To initialize the simulator for each domain:
curl –X POST –H "content-type:application/json" http://${SERVER_IP:SERVER_PORT}/pncsimu/v1/reload-data -d @INITIAL_DATA_FILE
In our case, we use 18181 as SERVER_PORT for domain1 and 28181 for domain2.
Here, INITIAL_DATA_FILE is a JSON representation describing the status of operational datastore.
The file is formatted as follows.
To reset the simulator to the most recent initialization point:
curl –X POST –H "content-type:application/json" http://${SERVER_IP:SERVER_PORT}/pncsimu/v1/reload-data -d'{}'
Please be noted that, in the perspective of ONAP eco-system, ACTN simulators act like local domain controllers. Therefore, to demonstrate ONAP/SDNC's cross-domain managing capabilities, two or more domain controllers are expected from ONAP/SDNC.
For demonstration purposes, two domain controllers are required, both need to be properly launched and initialized. The initialization payloads are attached below.