Merge "Improve the dockerized auto test"
diff --git a/near-rt-ric-simulator/auto-test/Dockerize_test.sh b/near-rt-ric-simulator/auto-test/Dockerize_test.sh
index 611523e..93cc310 100755
--- a/near-rt-ric-simulator/auto-test/Dockerize_test.sh
+++ b/near-rt-ric-simulator/auto-test/Dockerize_test.sh
@@ -2,12 +2,16 @@
TC_ONELINE_DESCR="dockerirze the test, setup docker container for policy agent, cbs, consul, near realtime ric simulator"
-. ../common/testcase_common.sh $1
+. ../common/testcase_common.sh $1 $2
#### TEST BEGIN ####
clean_containers
+start_ric_simulator
+
+prepare_consul_config
+
start_simulators
consul_config_app "../simulator-group/consul_cbs/config.json"
diff --git a/near-rt-ric-simulator/common/testcase_common.sh b/near-rt-ric-simulator/common/testcase_common.sh
index dfca543..d9a012e 100755
--- a/near-rt-ric-simulator/common/testcase_common.sh
+++ b/near-rt-ric-simulator/common/testcase_common.sh
@@ -2,18 +2,20 @@
. ../common/test_env.sh
-echo "Test case started as: ${BASH_SOURCE[$i+1]} "$1
+echo "Test case started as: ${BASH_SOURCE[$i+1]} "$1 $2
+echo "Numbers of ric simulator started" $2
# This is a script that contains all the functions needed for auto test
-# Arg: local | remote
+# Arg: local | remote (1, 2, 3, 4....)
STARTED_POLICY_AGENT="" #Policy agent app names added to this var to keep track of started container in the script
START_ARG=$1
IMAGE_TAG="1.0.0-SNAPSHOT"
IMAGE_TAG_REMOTE="latest"
+RIC_NUMBER=$2
if [ $# -lt 1 ] || [ $# -gt 2 ]; then
- echo "Expected arg: local | remote "
+ echo "Expected arg: local | remote and numbers of the rics "
exit 1
elif [ $1 == "local" ]; then
if [ -z $POLICY_AGENT_LOCAL_IMAGE ]; then
@@ -144,12 +146,48 @@
}
+
+
+start_ric_simulator() {
+
+ DOCKER_SIM_NWNAME="nonrtric-docker-net"
+ echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
+ docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
+
+ echo "start ric simulator"
+ curdir=$PWD
+ cd $SIM_GROUP
+ cd ric/
+
+ docker-compose up --scale ric-simulator=$RIC_NUMBER -d
+
+ cd $curdir
+ echo ""
+}
+
+prepare_consul_config() {
+ echo "prepare consul config"
+ curdir=$PWD
+ cd $SIM_GROUP
+ cd ric/
+
+ python3 cleanConsul.py
+ python3 prepareConsul.py
+
+ cd $curdir
+ echo ""
+
+
+}
+
+
# Start all simulators in the simulator group
start_simulators() {
echo "Starting all simulators"
curdir=$PWD
cd $SIM_GROUP
+
$SIM_GROUP/simulators-start.sh
cd $curdir
echo ""
@@ -160,6 +198,10 @@
docker stop $(docker ps -q --filter name=/policy-agent) &> /dev/null
echo "Removing all containers, policy agent app and simulators with name prefix 'policy_agent'"
docker rm $(docker ps -a -q --filter name=/policy-agent) &> /dev/null
+ echo "Stopping all containers, policy agent app(s) and simulators with name prefix 'ric-simulator'"
+ docker stop $(docker ps -q --filter name=ric-simulator) &> /dev/null
+ echo "Removing all containers, policy agent app and simulators with name prefix 'ric-simulator'"
+ docker rm $(docker ps -a -q --filter name=ric-simulator) &> /dev/null
echo "Removing unused docker networks with substring 'policy agent' in network name"
docker network rm $(docker network ls -q --filter name=nonrtric)
echo ""
diff --git a/near-rt-ric-simulator/simulator-group/consul_cbs/config.json b/near-rt-ric-simulator/simulator-group/consul_cbs/config.json
index 16975ca..432eddf 100644
--- a/near-rt-ric-simulator/simulator-group/consul_cbs/config.json
+++ b/near-rt-ric-simulator/simulator-group/consul_cbs/config.json
@@ -1,28 +1,100 @@
{
- "ric":[
- {
- "name":"ric3",
- "baseUrl":"http://ric3:8085/",
- "managedElementIds":[
- "kista_1",
- "kista_2"
+ "ric": [
+ {
+ "name": "ric_ric-simulator_6",
+ "baseUrl": "http://ric_ric-simulator_6:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_6",
+ "stockholm_ric_ric-simulator_6"
]
- }
- ],
- "streams_publishes":{
- "dmaap_publisher":{
- "type":"message_router",
- "dmaap_info":{
- "topic_url":"http://admin:admin@localhost:6845/events/A1-POLICY-AGENT-WRITE"
+ },
+ {
+ "name": "ric_ric-simulator_2",
+ "baseUrl": "http://ric_ric-simulator_2:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_2",
+ "stockholm_ric_ric-simulator_2"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_3",
+ "baseUrl": "http://ric_ric-simulator_3:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_3",
+ "stockholm_ric_ric-simulator_3"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_7",
+ "baseUrl": "http://ric_ric-simulator_7:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_7",
+ "stockholm_ric_ric-simulator_7"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_8",
+ "baseUrl": "http://ric_ric-simulator_8:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_8",
+ "stockholm_ric_ric-simulator_8"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_5",
+ "baseUrl": "http://ric_ric-simulator_5:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_5",
+ "stockholm_ric_ric-simulator_5"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_1",
+ "baseUrl": "http://ric_ric-simulator_1:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_1",
+ "stockholm_ric_ric-simulator_1"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_9",
+ "baseUrl": "http://ric_ric-simulator_9:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_9",
+ "stockholm_ric_ric-simulator_9"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_4",
+ "baseUrl": "http://ric_ric-simulator_4:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_4",
+ "stockholm_ric_ric-simulator_4"
+ ]
+ },
+ {
+ "name": "ric_ric-simulator_10",
+ "baseUrl": "http://ric_ric-simulator_10:8085/",
+ "managedElementIds": [
+ "kista_ric_ric-simulator_10",
+ "stockholm_ric_ric-simulator_10"
+ ]
+ }
+ ],
+ "streams_publishes": {
+ "dmaap_publisher": {
+ "type": "message_router",
+ "dmaap_info": {
+ "topic_url": "http://admin:admin@localhost:6845/events/A1-POLICY-AGENT-WRITE"
}
- }
- },
- "streams_subscribes":{
- "dmaap_subscriber":{
- "type":"message_router",
- "dmaap_info":{
- "topic_url":"http://admin:admin@localhost:6845/events/A1-POLICY-AGENT-READ/users/policy-agent"
+ }
+ },
+ "streams_subscribes": {
+ "dmaap_subscriber": {
+ "type": "message_router",
+ "dmaap_info": {
+ "topic_url": "http://admin:admin@localhost:6845/events/A1-POLICY-AGENT-READ/users/policy-agent"
}
- }
- }
-}
+ }
+ }
+}
\ No newline at end of file
diff --git a/near-rt-ric-simulator/simulator-group/consul_cbs/docker-compose-template.yml b/near-rt-ric-simulator/simulator-group/consul_cbs/docker-compose-template.yml
index 2f7ac3e..c2d07de 100644
--- a/near-rt-ric-simulator/simulator-group/consul_cbs/docker-compose-template.yml
+++ b/near-rt-ric-simulator/simulator-group/consul_cbs/docker-compose-template.yml
@@ -29,10 +29,3 @@
depends_on:
- consul-server
- ric-simulator:
- networks:
- - nonrtric-docker-net
- container_name: ric3
- image: ric-simulator:latest
- ports:
- - "8085:8085"
diff --git a/near-rt-ric-simulator/simulator-group/ric/cleanConsul.py b/near-rt-ric-simulator/simulator-group/ric/cleanConsul.py
new file mode 100644
index 0000000..1e40416
--- /dev/null
+++ b/near-rt-ric-simulator/simulator-group/ric/cleanConsul.py
@@ -0,0 +1,24 @@
+import json
+import subprocess
+import os
+
+print("Clean old ric configurations in Consul config file")
+
+p = os.path.abspath('..')
+consul_config = p + '/consul_cbs' + '/config.json'
+
+
+def write_json(data, filename=consul_config):
+ with open(filename, 'w') as f:
+ json.dump(data, f, indent=4)
+
+
+with open(consul_config) as json_file:
+ clean = json.load(json_file)
+ clean['ric'] = []
+
+
+write_json(clean)
+print("Clean old ric configurations from Consul config file, done")
+
+
diff --git a/near-rt-ric-simulator/simulator-group/ric/docker-compose.yml b/near-rt-ric-simulator/simulator-group/ric/docker-compose.yml
new file mode 100644
index 0000000..e45e0e4
--- /dev/null
+++ b/near-rt-ric-simulator/simulator-group/ric/docker-compose.yml
@@ -0,0 +1,12 @@
+networks:
+ nonrtric-docker-net:
+ external:
+ name: nonrtric-docker-net
+services:
+ ric-simulator:
+ image: ric-simulator:latest
+ networks:
+ nonrtric-docker-net: null
+ ports:
+ - 8085/tcp
+version: '3.0'
\ No newline at end of file
diff --git a/near-rt-ric-simulator/simulator-group/ric/prepareConsul.py b/near-rt-ric-simulator/simulator-group/ric/prepareConsul.py
new file mode 100644
index 0000000..5cb482b
--- /dev/null
+++ b/near-rt-ric-simulator/simulator-group/ric/prepareConsul.py
@@ -0,0 +1,43 @@
+import json
+import subprocess
+import os
+
+print("Update fresh ric configuration in Consul configuration file")
+
+p = os.path.abspath('..')
+consul_config = p + '/consul_cbs' + '/config.json'
+
+
+def write_json(data, filename=consul_config):
+ with open(filename, 'w') as f:
+ json.dump(data, f, indent=4)
+
+
+def bash_command(cmd):
+ result = []
+ sp = subprocess.Popen(['/bin/bash', '-c', cmd], stdout=subprocess.PIPE)
+ for line in sp.stdout.readlines():
+ result.append(line.decode().strip())
+ return result
+
+
+command = "docker ps | grep simulator | awk '{print $NF}'"
+
+ric_list = bash_command(command)
+
+with open(consul_config) as json_file:
+ data = json.load(json_file)
+ temp = data['ric']
+ for ric in ric_list:
+ y = {"name": ric,
+ "baseUrl": "http://" + ric + ":8085/",
+ "managedElementIds": [
+ "kista_" + ric,
+ "stockholm_" + ric
+ ]
+ }
+ temp.append(y)
+
+
+write_json(data)
+print("Update Consul config file with fresh ric configuration, done")
diff --git a/near-rt-ric-simulator/simulator-group/simulators-start.sh b/near-rt-ric-simulator/simulator-group/simulators-start.sh
index 7f83397..adcf621 100755
--- a/near-rt-ric-simulator/simulator-group/simulators-start.sh
+++ b/near-rt-ric-simulator/simulator-group/simulators-start.sh
@@ -3,7 +3,6 @@
DOCKER_SIM_NWNAME="nonrtric-docker-net"
echo "Creating docker network $DOCKER_SIM_NWNAME, if needed"
docker network ls| grep $DOCKER_SIM_NWNAME > /dev/null || docker network create $DOCKER_SIM_NWNAME
-
docker-compose -f consul_cbs/docker-compose-template.yml config > docker-compose.yml
docker-compose up -d
\ No newline at end of file