From fe89c48bb46dead2117d6cb5738a4b23ddc509b1 Mon Sep 17 00:00:00 2001 From: sgambelluri Date: Mon, 25 Mar 2024 07:44:20 +0000 Subject: [PATCH 01/47] Bugs Fixed in Running Agents --- src/tests/ofc24/2.device1.json | 2 +- src/tests/ofc24/3.device2.json | 2 +- src/tests/ofc24/4.device3_R1.json | 2 +- src/tests/ofc24/5.device4_R2.json | 2 +- src/tests/ofc24/startExtraNetConfigAgent.sh | 46 +++++++++------- src/tests/ofc24/start_topo.sh | 53 +++++++++++-------- .../ofc24/{ => tempOC/files}/platform_r1.xml | 0 .../ofc24/{ => tempOC/files}/platform_r2.xml | 0 .../ofc24/{ => tempOC/files}/platform_t1.xml | 0 .../ofc24/{ => tempOC/files}/platform_t2.xml | 0 .../{ => tempOC/files}/startNetconfAgent.sh | 0 11 files changed, 62 insertions(+), 45 deletions(-) rename src/tests/ofc24/{ => tempOC/files}/platform_r1.xml (100%) mode change 100755 => 100644 rename src/tests/ofc24/{ => tempOC/files}/platform_r2.xml (100%) mode change 100755 => 100644 rename src/tests/ofc24/{ => tempOC/files}/platform_t1.xml (100%) mode change 100755 => 100644 rename src/tests/ofc24/{ => tempOC/files}/platform_t2.xml (100%) mode change 100755 => 100644 rename src/tests/ofc24/{ => tempOC/files}/startNetconfAgent.sh (100%) mode change 100755 => 100644 diff --git a/src/tests/ofc24/2.device1.json b/src/tests/ofc24/2.device1.json index 3e31f31eb..c5a189e31 100755 --- a/src/tests/ofc24/2.device1.json +++ b/src/tests/ofc24/2.device1.json @@ -41,7 +41,7 @@ "action": 1, "custom": { "resource_key": "_connect/address", - "resource_value": "10.0.2.15" + "resource_value": "10.0.2.4" } }, { diff --git a/src/tests/ofc24/3.device2.json b/src/tests/ofc24/3.device2.json index 812affa7b..a38fc2905 100755 --- a/src/tests/ofc24/3.device2.json +++ b/src/tests/ofc24/3.device2.json @@ -41,7 +41,7 @@ "action": 1, "custom": { "resource_key": "_connect/address", - "resource_value": "10.0.2.15" + "resource_value": "10.0.2.4" } }, { diff --git a/src/tests/ofc24/4.device3_R1.json b/src/tests/ofc24/4.device3_R1.json index 3a57ba79c..1c110f20e 100755 --- a/src/tests/ofc24/4.device3_R1.json +++ b/src/tests/ofc24/4.device3_R1.json @@ -107,7 +107,7 @@ "action": 1, "custom": { "resource_key": "_connect/address", - "resource_value": "10.0.2.15" + "resource_value": "10.0.2.4" } }, { diff --git a/src/tests/ofc24/5.device4_R2.json b/src/tests/ofc24/5.device4_R2.json index 9b1968d09..43ebda5c6 100755 --- a/src/tests/ofc24/5.device4_R2.json +++ b/src/tests/ofc24/5.device4_R2.json @@ -108,7 +108,7 @@ "action": 1, "custom": { "resource_key": "_connect/address", - "resource_value": "10.0.2.15" + "resource_value": "10.0.2.4" } }, { diff --git a/src/tests/ofc24/startExtraNetConfigAgent.sh b/src/tests/ofc24/startExtraNetConfigAgent.sh index d9428585e..f8638a51f 100755 --- a/src/tests/ofc24/startExtraNetConfigAgent.sh +++ b/src/tests/ofc24/startExtraNetConfigAgent.sh @@ -13,22 +13,32 @@ # See the License for the specific language governing permissions and # limitations under the License. -DOCKER_CONTAINER=$1 -DOCKER_PORT=$2 - -if [ -n "$DOCKER_CONTAINER" ] && [ -n "$DOCKER_PORT" ];then - sudo docker stop "$DOCKER_CONTAINER" -t 1 - sudo docker rm "$DOCKER_CONTAINER" - - echo "Creating TPs" - screen -dmS t1 -T xterm sh -c "docker run -p 10.0.2.15:"$DOCKER_PORT":2022 -v ~/tfs-ctrl/tempOC/files:/files --name $DOCKER_CONTAINER -it asgamb1/oc23bgp.img:latest" - sleep 2 - if [ "$( docker container inspect -f '{{.State.Running}}' "$DOCKER_CONTAINER")" = "true" ]; then - docker exec "$DOCKER_CONTAINER" cp /files/demoECOC21_4.xml demoECOC21.xml - docker exec "$DOCKER_CONTAINER" /confd/examples.confd/OC23/startNetconfAgent.sh - else - echo "your container is not running yet" - fi + + + + +screen -dmS t1 -T xterm sh -c "docker run -p 10.0.2.4:2023:2022 -v ~/tfs-ctrl/src/tests/ofc24/tempOC/files:/files --name na1 -it asgamb1/oc23bgp.img:latest bash" +screen -dmS t2 -T xterm sh -c "docker run -p 10.0.2.4:2024:2022 -v ~/tfs-ctrl/src/tests/ofc24/tempOC/files:/files --name na2 -it asgamb1/oc23bgp.img:latest bash" + + + +sleep 4 +echo "starting transponder1 " + +if [ "$( docker container inspect -f '{{.State.Running}}' na1)" = "true" ]; then + docker exec na1 sh -c " cp /files/platform_t1.xml demoECOC21.xml ; + /confd/examples.confd/OC23/startNetconfAgent.sh;" + +else + echo "na1 container is not running yet" +fi + +echo "starting transponder2 " + +if [ "$( docker container inspect -f '{{.State.Running}}' na2)" = "true" ]; then + docker exec na2 sh -c " cp /files/platform_t2.xml demoECOC21.xml; + /confd/examples.confd/OC23/startNetconfAgent.sh " + else - echo "Please define the docker container name and port" -fi + echo "na2 container is not running yet" +fi \ No newline at end of file diff --git a/src/tests/ofc24/start_topo.sh b/src/tests/ofc24/start_topo.sh index c92406476..ed93641c9 100755 --- a/src/tests/ofc24/start_topo.sh +++ b/src/tests/ofc24/start_topo.sh @@ -29,35 +29,42 @@ sudo docker rm na4 echo "Creating Transponder Agents" -# if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1 ; then -# echo "asgamb1/oc23bgp.img:latest not existed ! " -# screen -dmS t3 -T xterm sh -c "docker run -p 10.0.2.15:2025:2022 -v ~/tempOC/files:/files --name na -it $IMAGE_NAME bash" -# echo 'start downloading asgamb1/oc23bgp.img:latest , it may take few minutes ! .... ' -# while [ "$(docker image inspect asgamb1/oc23bgp.img:latest 2>/dev/null)" == "[]" ]; do -# sleep 1 -# done + ./startExtraNetConfigAgent.sh -#fi +echo "Creating Roadms Agents" -screen -dmS t1 -T xterm sh -c "docker run -p 127.0.0.1:2023:2022 -v ~/tempOC/files:/files --name $DOCKER_CONTAINER -it asgamb1/oc23bgp.img:latest bash" -sleep 2 -if [ "$( docker container inspect -f '{{.State.Running}}' "$DOCKER_CONTAINER")" = "true" ]; then - docker exec "$DOCKER_CONTAINER" cp /files/demoECOC21_4.xml demoECOC21.xml - docker exec "$DOCKER_CONTAINER" /confd/examples.confd/OC23/startNetconfAgent.sh +screen -dmS t3 -T xterm sh -c 'docker run -p 10.0.2.4:2025:2022 -v ~/tfs-ctrl/src/tests/ofc24/tempOC/files:/files --name na3 -it asgamb1/flexscale-node.img:latest bash ' +screen -dmS t4 -T xterm sh -c 'docker run -p 10.0.2.4:2026:2022 -v ~/tfs-ctrl/src/tests/ofc24/tempOC/files:/files --name na4 -it asgamb1/flexscale-node.img:latest bash ' +sleep 4 + +echo "starting Roadm1 " + +if [ "$( docker container inspect -f '{{.State.Running}}' na4)" = "true" ]; then + docker exec na4 sh -c " cp /files/platform_r2.xml init_openconfig-platform.xml; + cp /files/startNetconfAgent.sh startNetconfAgent.sh; + /confd/examples.confd/OC23/startNetconfAgent.sh ;"& + else - echo "your container is not running yet" + echo "na4 is not running yet" fi -echo " It may take a while , Hang on ..." -source "./startExtraNetConfigAgent.sh" "na1" "2023" -sleep 3 -source "./startExtraNetConfigAgent.sh" "na2" "2024" -sleep 3 +echo "starting Roadm2 " + + + +if [ "$( docker container inspect -f '{{.State.Running}}' na3)" = "true" ]; then + docker exec na3 sh -c " cp /files/platform_r1.xml init_openconfig-platform.xml; + cp /files/startNetconfAgent.sh startNetconfAgent.sh; + /confd/examples.confd/OC23/startNetconfAgent.sh; " + +else + echo "na3 is not running yet" +fi + -bash -c "cp /tempOC/files/plat_r1.xml /confd/examples.confd/OC23/init_openconfig-platform.xml; ./startNetconfAgent.sh" -bash -c "cp /tempOC/files/plat_r2.xml /confd/examples.confd/OC23/init_openconfig-platform.xml; ./startNetconfAgent.sh" -screen -dmS t3 -T xterm sh -c 'docker run -p 10.0.2.15:2025:2022 -v ~/tfs-ctrl/tempOC/files:/files --name na3 -it asgamb1/flexscale-node.img:latest ./startNetconfAgent.sh' -screen -dmS t4 -T xterm sh -c 'docker run -p 10.0.2.15:2026:2022 -v ~/tfs-ctrl/tempOC/files:/files --name na4 -it asgamb1/flexscale-node.img:latest ./startNetconfAgent.sh' +# screen -S t3 -X stuff "cp ~/files/platform_r1.xml /confd/examples.confd/OC23/init_openconfig-platform.xml && ./startNetconfAgent.sh" +# bash -c "docker cp ~/tfs-ctrl/src/tests/ofc24/tempOC/files/platform_r2.xml na4:/confd/examples.confd/OC23/init_openconfig-platform.xml; +# docker cp ~/tfs-ctrl/src/tests/ofc24/tempOC/files/startNetconfAgent.sh na4:/confd/examples.confd/OC23/startNetconfAgent.sh;" diff --git a/src/tests/ofc24/platform_r1.xml b/src/tests/ofc24/tempOC/files/platform_r1.xml old mode 100755 new mode 100644 similarity index 100% rename from src/tests/ofc24/platform_r1.xml rename to src/tests/ofc24/tempOC/files/platform_r1.xml diff --git a/src/tests/ofc24/platform_r2.xml b/src/tests/ofc24/tempOC/files/platform_r2.xml old mode 100755 new mode 100644 similarity index 100% rename from src/tests/ofc24/platform_r2.xml rename to src/tests/ofc24/tempOC/files/platform_r2.xml diff --git a/src/tests/ofc24/platform_t1.xml b/src/tests/ofc24/tempOC/files/platform_t1.xml old mode 100755 new mode 100644 similarity index 100% rename from src/tests/ofc24/platform_t1.xml rename to src/tests/ofc24/tempOC/files/platform_t1.xml diff --git a/src/tests/ofc24/platform_t2.xml b/src/tests/ofc24/tempOC/files/platform_t2.xml old mode 100755 new mode 100644 similarity index 100% rename from src/tests/ofc24/platform_t2.xml rename to src/tests/ofc24/tempOC/files/platform_t2.xml diff --git a/src/tests/ofc24/startNetconfAgent.sh b/src/tests/ofc24/tempOC/files/startNetconfAgent.sh old mode 100755 new mode 100644 similarity index 100% rename from src/tests/ofc24/startNetconfAgent.sh rename to src/tests/ofc24/tempOC/files/startNetconfAgent.sh -- GitLab From 10a2f3ff40d47f6f48265b24076d29e5231bf047 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 26 Mar 2024 13:08:30 +0000 Subject: [PATCH 02/47] GitLab CI/CD pipeline - OFC'24: - Updated script to deploy node agents --- src/tests/ofc24/deploy-node-agents.sh | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/tests/ofc24/deploy-node-agents.sh b/src/tests/ofc24/deploy-node-agents.sh index 5c3c8d0d2..d0d32e079 100755 --- a/src/tests/ofc24/deploy-node-agents.sh +++ b/src/tests/ofc24/deploy-node-agents.sh @@ -26,29 +26,30 @@ docker network rm na-br echo echo "Pull Docker images:" echo "-------------------" -docker pull asgamb1/flexscale-hhi.img:latest +docker pull asgamb1/oc23bgp.img:latest docker pull asgamb1/flexscale-node.img:latest + echo echo "Create Management Network and Node Agents:" echo "------------------------------------------" docker network create -d bridge --subnet=172.254.253.0/24 --gateway=172.254.253.254 --ip-range=172.254.253.0/24 na-br docker run -d --name na-t1 --network=na-br --ip 172.254.253.1 \ - --volume "$PWD/src/tests/${TEST_NAME}/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/platform_t1.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ - asgamb1/flexscale-hhi.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_t1.xml:/confd/examples.confd/OC23/demoECOC21.xml" \ + asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ docker run -d --name na-t2 --network=na-br --ip 172.254.253.2 \ - --volume "$PWD/src/tests/${TEST_NAME}/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/platform_t2.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ - asgamb1/flexscale-hhi.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_t2.xml:/confd/examples.confd/OC23/demoECOC21.xml" \ + asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ docker run -d --name na-r1 --network=na-br --ip 172.254.253.101 \ - --volume "$PWD/src/tests/${TEST_NAME}/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/platform_r1.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ + --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_r1.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ docker run -d --name na-r2 --network=na-br --ip 172.254.253.102 \ - --volume "$PWD/src/tests/${TEST_NAME}/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/platform_r2.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ + --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_r2.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ echo -- GitLab From 2a5918013d10ce4590373805835b47414a66ea4e Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 09:54:13 +0000 Subject: [PATCH 03/47] OFC'24 test: - Reorganized descriptor files - Reorganized node agent config files - Reorganized old node agent deploy scripts - Updated node agents deploy scripts --- src/tests/ofc24/_old/README.md | 21 +++++++++ .../{ => _old}/startExtraNetConfigAgent.sh | 0 src/tests/ofc24/{ => _old}/start_topo.sh | 0 src/tests/ofc24/deploy-node-agents.sh | 46 ++++++++----------- .../{ => descriptors}/7.service-bidir.json | 0 .../{ => descriptors}/7.service-unidir.json | 0 .../descriptors_topology.json | 0 .../{ => descriptors/old}/1.context.json | 0 .../{ => descriptors/old}/2.device1.json | 0 .../{ => descriptors/old}/3.device2.json | 0 .../{ => descriptors/old}/4.device3_R1.json | 0 .../{ => descriptors/old}/5.device4_R2.json | 0 .../ofc24/{ => descriptors/old}/6.links.json | 0 src/tests/ofc24/destroy-node-agents.sh | 22 +++++++++ .../platform_r1.xml | 0 .../platform_r2.xml | 0 .../platform_t1.xml | 0 .../platform_t2.xml | 0 .../startNetconfAgent-mg-on.sh | 15 ++++++ .../startNetconfAgent-tp.sh | 17 +++++++ .../ofc24/tempOC/files/startNetconfAgent.sh | 7 --- 21 files changed, 94 insertions(+), 34 deletions(-) create mode 100644 src/tests/ofc24/_old/README.md rename src/tests/ofc24/{ => _old}/startExtraNetConfigAgent.sh (100%) rename src/tests/ofc24/{ => _old}/start_topo.sh (100%) rename src/tests/ofc24/{ => descriptors}/7.service-bidir.json (100%) rename src/tests/ofc24/{ => descriptors}/7.service-unidir.json (100%) rename src/tests/ofc24/{ => descriptors}/descriptors_topology.json (100%) rename src/tests/ofc24/{ => descriptors/old}/1.context.json (100%) rename src/tests/ofc24/{ => descriptors/old}/2.device1.json (100%) rename src/tests/ofc24/{ => descriptors/old}/3.device2.json (100%) rename src/tests/ofc24/{ => descriptors/old}/4.device3_R1.json (100%) rename src/tests/ofc24/{ => descriptors/old}/5.device4_R2.json (100%) rename src/tests/ofc24/{ => descriptors/old}/6.links.json (100%) create mode 100755 src/tests/ofc24/destroy-node-agents.sh rename src/tests/ofc24/{tempOC/files => node-agents-config}/platform_r1.xml (100%) rename src/tests/ofc24/{tempOC/files => node-agents-config}/platform_r2.xml (100%) rename src/tests/ofc24/{tempOC/files => node-agents-config}/platform_t1.xml (100%) rename src/tests/ofc24/{tempOC/files => node-agents-config}/platform_t2.xml (100%) create mode 100755 src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh create mode 100755 src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh delete mode 100644 src/tests/ofc24/tempOC/files/startNetconfAgent.sh diff --git a/src/tests/ofc24/_old/README.md b/src/tests/ofc24/_old/README.md new file mode 100644 index 000000000..93e95fc64 --- /dev/null +++ b/src/tests/ofc24/_old/README.md @@ -0,0 +1,21 @@ +# OFC'24 - Test scenario + +## Start Topology +Topology is composed of 2 transponders managed through OpenConfig and 2 Multi-granular ROAMDS +Strat the topology executing the following command: +```bash +sudo ./start_topo.sh +``` + +## Populate the TFS context and topology +Pushing the JSON files following the file indexes, i.e, 1, 2, 3, ... +The last JSON file with ID 7 is the service. +To check the service is onboarded successfully go into the TFS WebUI and check the `Service` tab. + +## Check configuration in devices +Check if the devices are configured properly. +To check that, run, for each device (X={1, 2, 3, 4}): +```bash +screen -r tX +``` +To release the terminal, press `Ctrl + A + D` diff --git a/src/tests/ofc24/startExtraNetConfigAgent.sh b/src/tests/ofc24/_old/startExtraNetConfigAgent.sh similarity index 100% rename from src/tests/ofc24/startExtraNetConfigAgent.sh rename to src/tests/ofc24/_old/startExtraNetConfigAgent.sh diff --git a/src/tests/ofc24/start_topo.sh b/src/tests/ofc24/_old/start_topo.sh similarity index 100% rename from src/tests/ofc24/start_topo.sh rename to src/tests/ofc24/_old/start_topo.sh diff --git a/src/tests/ofc24/deploy-node-agents.sh b/src/tests/ofc24/deploy-node-agents.sh index d0d32e079..1c1e45526 100755 --- a/src/tests/ofc24/deploy-node-agents.sh +++ b/src/tests/ofc24/deploy-node-agents.sh @@ -17,8 +17,8 @@ TEST_NAME="ofc24" echo -echo "Pre-deploy clean-up:" -echo "--------------------" +echo "Clean-up:" +echo "---------" docker rm -f na-t1 na-t2 na-r1 na-r2 docker network rm na-br @@ -34,35 +34,33 @@ echo echo "Create Management Network and Node Agents:" echo "------------------------------------------" docker network create -d bridge --subnet=172.254.253.0/24 --gateway=172.254.253.254 --ip-range=172.254.253.0/24 na-br -docker run -d --name na-t1 --network=na-br --ip 172.254.253.1 \ - --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_t1.xml:/confd/examples.confd/OC23/demoECOC21.xml" \ +docker run -dit --init --name na-t1 --network=na-br --ip 172.254.253.101 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t1.xml:/confd/examples.confd/OC23/platform.xml" \ asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ -docker run -d --name na-t2 --network=na-br --ip 172.254.253.2 \ - --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_t2.xml:/confd/examples.confd/OC23/demoECOC21.xml" \ +docker run -dit --init --name na-t2 --network=na-br --ip 172.254.253.102 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t2.xml:/confd/examples.confd/OC23/platform.xml" \ asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ -docker run -d --name na-r1 --network=na-br --ip 172.254.253.101 \ - --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_r1.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ +docker run -dit --init --name na-r1 --network=na-br --ip 172.254.253.201 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r1.xml:/confd/examples.confd/OC23/platform.xml" \ asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ -docker run -d --name na-r2 --network=na-br --ip 172.254.253.102 \ - --volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/platform_r2.xml:/confd/examples.confd/OC23/init_openconfig-platform.xml" \ +docker run -dit --init --name na-r2 --network=na-br --ip 172.254.253.202 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r2.xml:/confd/examples.confd/OC23/platform.xml" \ asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - #--volume "$PWD/src/tests/${TEST_NAME}/tempOC/files/startNetconfAgent.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ echo echo "Waiting for initialization..." echo "-----------------------------" docker ps -a -sleep 5 -docker ps -a while ! docker logs na-t1 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done while ! docker logs na-t2 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done while ! docker logs na-r1 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done while ! docker logs na-r2 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done -sleep 2 +sleep 3 docker ps -a @@ -70,16 +68,10 @@ echo echo "Dump Node Agent status:" echo "-----------------------" docker ps -a -#docker logs na-t1 -#docker logs na-t2 -#docker logs na-r1 -#docker logs na-r2 - +docker logs na-t1 +docker logs na-t2 +docker logs na-r1 +docker logs na-r2 -#echo -#echo "Post-test clean-up:" -#echo "-------------------" -#docker rm -f na-t1 na-t2 na-r1 na-r2 -#docker network rm na-br echo "Done!" diff --git a/src/tests/ofc24/7.service-bidir.json b/src/tests/ofc24/descriptors/7.service-bidir.json similarity index 100% rename from src/tests/ofc24/7.service-bidir.json rename to src/tests/ofc24/descriptors/7.service-bidir.json diff --git a/src/tests/ofc24/7.service-unidir.json b/src/tests/ofc24/descriptors/7.service-unidir.json similarity index 100% rename from src/tests/ofc24/7.service-unidir.json rename to src/tests/ofc24/descriptors/7.service-unidir.json diff --git a/src/tests/ofc24/descriptors_topology.json b/src/tests/ofc24/descriptors/descriptors_topology.json similarity index 100% rename from src/tests/ofc24/descriptors_topology.json rename to src/tests/ofc24/descriptors/descriptors_topology.json diff --git a/src/tests/ofc24/1.context.json b/src/tests/ofc24/descriptors/old/1.context.json similarity index 100% rename from src/tests/ofc24/1.context.json rename to src/tests/ofc24/descriptors/old/1.context.json diff --git a/src/tests/ofc24/2.device1.json b/src/tests/ofc24/descriptors/old/2.device1.json similarity index 100% rename from src/tests/ofc24/2.device1.json rename to src/tests/ofc24/descriptors/old/2.device1.json diff --git a/src/tests/ofc24/3.device2.json b/src/tests/ofc24/descriptors/old/3.device2.json similarity index 100% rename from src/tests/ofc24/3.device2.json rename to src/tests/ofc24/descriptors/old/3.device2.json diff --git a/src/tests/ofc24/4.device3_R1.json b/src/tests/ofc24/descriptors/old/4.device3_R1.json similarity index 100% rename from src/tests/ofc24/4.device3_R1.json rename to src/tests/ofc24/descriptors/old/4.device3_R1.json diff --git a/src/tests/ofc24/5.device4_R2.json b/src/tests/ofc24/descriptors/old/5.device4_R2.json similarity index 100% rename from src/tests/ofc24/5.device4_R2.json rename to src/tests/ofc24/descriptors/old/5.device4_R2.json diff --git a/src/tests/ofc24/6.links.json b/src/tests/ofc24/descriptors/old/6.links.json similarity index 100% rename from src/tests/ofc24/6.links.json rename to src/tests/ofc24/descriptors/old/6.links.json diff --git a/src/tests/ofc24/destroy-node-agents.sh b/src/tests/ofc24/destroy-node-agents.sh new file mode 100755 index 000000000..19e7fc9a9 --- /dev/null +++ b/src/tests/ofc24/destroy-node-agents.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +echo +echo "Clean-up:" +echo "---------" +docker rm -f na-t1 na-t2 na-r1 na-r2 +docker network rm na-br + +echo "Done!" diff --git a/src/tests/ofc24/tempOC/files/platform_r1.xml b/src/tests/ofc24/node-agents-config/platform_r1.xml similarity index 100% rename from src/tests/ofc24/tempOC/files/platform_r1.xml rename to src/tests/ofc24/node-agents-config/platform_r1.xml diff --git a/src/tests/ofc24/tempOC/files/platform_r2.xml b/src/tests/ofc24/node-agents-config/platform_r2.xml similarity index 100% rename from src/tests/ofc24/tempOC/files/platform_r2.xml rename to src/tests/ofc24/node-agents-config/platform_r2.xml diff --git a/src/tests/ofc24/tempOC/files/platform_t1.xml b/src/tests/ofc24/node-agents-config/platform_t1.xml similarity index 100% rename from src/tests/ofc24/tempOC/files/platform_t1.xml rename to src/tests/ofc24/node-agents-config/platform_t1.xml diff --git a/src/tests/ofc24/tempOC/files/platform_t2.xml b/src/tests/ofc24/node-agents-config/platform_t2.xml similarity index 100% rename from src/tests/ofc24/tempOC/files/platform_t2.xml rename to src/tests/ofc24/node-agents-config/platform_t2.xml diff --git a/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh b/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh new file mode 100755 index 000000000..fe5ad5618 --- /dev/null +++ b/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +echo 'Cleaning...' +make clean + +echo 'Rebuilding...' +make all + +echo 'Initializing database...' +cp platform.xml confd-cdb/ + +echo 'Starting ConfD...' +make start2 + +echo 'ConfD Ready!!' diff --git a/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh b/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh new file mode 100755 index 000000000..afc28cee7 --- /dev/null +++ b/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +echo 'Cleaning...' +make clean + +echo 'Rebuilding...' +make all + +echo 'Initializing database...' +cp platform.xml confd-cdb/ +cp interfaces.xml confd-cdb/ +cp bgp.xml confd-cdb/ + +echo 'Starting ConfD...' +make start2 + +echo 'ConfD Ready!!' diff --git a/src/tests/ofc24/tempOC/files/startNetconfAgent.sh b/src/tests/ofc24/tempOC/files/startNetconfAgent.sh deleted file mode 100644 index 10b721883..000000000 --- a/src/tests/ofc24/tempOC/files/startNetconfAgent.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -make clean -make all -#make init -cp init_openconfig-platform.xml confd-cdb/ -#cp init_flex-scale-mg-on.xml confd-cdb/ -make start2 -- GitLab From 3f31baf859619c85d452523ff5184e6110398924 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 10:12:21 +0000 Subject: [PATCH 04/47] GitLab CI/CD pipeline - OFC'24: - Updated pipeline manifest - Updated TFS deploy specs --- src/tests/ofc24/.gitlab-ci.yml | 28 +++++++++++++++++++++++----- src/tests/ofc24/deploy_specs.sh | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/tests/ofc24/.gitlab-ci.yml b/src/tests/ofc24/.gitlab-ci.yml index 0b5593b16..6d5257964 100644 --- a/src/tests/ofc24/.gitlab-ci.yml +++ b/src/tests/ofc24/.gitlab-ci.yml @@ -13,9 +13,9 @@ # limitations under the License. # Build, tag, and push the Docker image to the GitLab Docker registry -build ofc22: +build ofc24: variables: - TEST_NAME: 'ofc22' + TEST_NAME: 'ofc24' stage: build before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY @@ -36,13 +36,13 @@ build ofc22: - .gitlab-ci.yml # Deploy TeraFlowSDN and Execute end-2-end test -end2end_test ofc22: +end2end_test ofc24: variables: - TEST_NAME: 'ofc22' + TEST_NAME: 'ofc24' stage: end2end_test # Disable to force running it after all other tasks #needs: - # - build ofc22 + # - build ofc24 before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: @@ -53,6 +53,9 @@ end2end_test ofc22: - microk8s status --wait-ready - kubectl get pods --all-namespaces + # Deploy Optical Device Node Agents + - ./src/tests/${TEST_NAME}/deploy-node-agents.sh + # Configure TeraFlowSDN deployment # Uncomment if DEBUG log level is needed for the components #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/contextservice.yaml @@ -87,6 +90,7 @@ end2end_test ofc22: --volume "$PWD/src/tests/${TEST_NAME}:/opt/results" $CI_REGISTRY_IMAGE/${TEST_NAME}:latest after_script: + # Dump TeraFlowSDN component logs - source src/tests/${TEST_NAME}/deploy_specs.sh - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server @@ -94,8 +98,22 @@ end2end_test ofc22: - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/serviceservice -c server - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/sliceservice -c server - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/opticalcontrollerservice -c server - if docker ps -a | grep ${TEST_NAME}; then docker rm -f ${TEST_NAME}; fi + + # Dump Optical Device Node Agents container status and logs + - docker ps -a + - docker logs na-t1 + - docker logs na-t2 + - docker logs na-r1 + - docker logs na-r2 + + # Destroy Optical Device Node Agents + - ./src/tests/${TEST_NAME}/destroy-node-agents.sh + + # Clean old docker images - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + #coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' diff --git a/src/tests/ofc24/deploy_specs.sh b/src/tests/ofc24/deploy_specs.sh index ca5494de2..e7458dc9d 100755 --- a/src/tests/ofc24/deploy_specs.sh +++ b/src/tests/ofc24/deploy_specs.sh @@ -63,7 +63,7 @@ export TFS_K8S_NAMESPACE="tfs" export TFS_EXTRA_MANIFESTS="manifests/nginx_ingress_http.yaml" # Uncomment to monitor performance of components -export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/servicemonitors.yaml" +#export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/servicemonitors.yaml" # Uncomment when deploying Optical CyberSecurity #export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/cachingservice.yaml" -- GitLab From 94219359fe6d02a76291edf7a3f411fc521cec9e Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 10:30:38 +0000 Subject: [PATCH 05/47] GitLab CI/CD pipeline - OFC'24: - Activate test in pipeline --- src/tests/.gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 41b8bb36c..b7345bbd1 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -19,4 +19,4 @@ include: - local: '/src/tests/ecoc22/.gitlab-ci.yml' #- local: '/src/tests/nfvsdn22/.gitlab-ci.yml' #- local: '/src/tests/ofc23/.gitlab-ci.yml' - #- local: '/src/tests/ofc24/.gitlab-ci.yml' + - local: '/src/tests/ofc24/.gitlab-ci.yml' -- GitLab From 68bb8fdf52e87ee0e344fa436023b673cce057a4 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 10:38:28 +0000 Subject: [PATCH 06/47] GitLab CI/CD pipeline - OFC'24: - Updated descriptor file names - Updated descriptor paths in Dockerfile --- src/tests/ofc24/Dockerfile | 4 +++- .../descriptors/{7.service-bidir.json => service-bidir.json} | 0 .../{7.service-unidir.json => service-unidir.json} | 0 .../descriptors/{descriptors_topology.json => topology.json} | 0 4 files changed, 3 insertions(+), 1 deletion(-) rename src/tests/ofc24/descriptors/{7.service-bidir.json => service-bidir.json} (100%) rename src/tests/ofc24/descriptors/{7.service-unidir.json => service-unidir.json} (100%) rename src/tests/ofc24/descriptors/{descriptors_topology.json => topology.json} (100%) diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index 8efa0c72c..df42fe338 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -82,7 +82,9 @@ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ COPY src/tests/*.py ./tests/ COPY src/tests/ofc24/__init__.py ./tests/ofc24/__init__.py -COPY src/tests/ofc24/descriptors_topology.json ./tests/ofc24/descriptors_topology.json +COPY src/tests/ofc24/descriptors/topology.json ./tests/ofc24/descriptors/topology.json +COPY src/tests/ofc24/descriptors/service-unidir.json ./tests/ofc24/descriptors/service-unidir.json +COPY src/tests/ofc24/descriptors/service-bidir.json ./tests/ofc24/descriptors/service-bidir.json COPY src/tests/ofc24/tests/. ./tests/ofc24/tests/ COPY src/tests/tools/. ./tests/tools/ diff --git a/src/tests/ofc24/descriptors/7.service-bidir.json b/src/tests/ofc24/descriptors/service-bidir.json similarity index 100% rename from src/tests/ofc24/descriptors/7.service-bidir.json rename to src/tests/ofc24/descriptors/service-bidir.json diff --git a/src/tests/ofc24/descriptors/7.service-unidir.json b/src/tests/ofc24/descriptors/service-unidir.json similarity index 100% rename from src/tests/ofc24/descriptors/7.service-unidir.json rename to src/tests/ofc24/descriptors/service-unidir.json diff --git a/src/tests/ofc24/descriptors/descriptors_topology.json b/src/tests/ofc24/descriptors/topology.json similarity index 100% rename from src/tests/ofc24/descriptors/descriptors_topology.json rename to src/tests/ofc24/descriptors/topology.json -- GitLab From 3e6e31fd85fafd18b9bab54284ab9037e1d83eea Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 10:46:11 +0000 Subject: [PATCH 07/47] GitLab CI/CD pipeline - OFC'24: - Fixed missing file required in Dockerfile --- src/tests/ofc24/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/tests/ofc24/__init__.py diff --git a/src/tests/ofc24/__init__.py b/src/tests/ofc24/__init__.py new file mode 100644 index 000000000..1549d9811 --- /dev/null +++ b/src/tests/ofc24/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + -- GitLab From ab161a185b061531429cc1e6e5f35a4c30b84269 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 11:31:42 +0000 Subject: [PATCH 08/47] GitLab CI/CD pipeline - OFC'24: - Fixed deployment of dataplane node agents - Added testsfor bidir and unidir services to Dockerfile - Updated descriptors in functional tests - Separated functional tests for bidir and unidir services - Removed unneeded KPI-related test methods --- src/tests/ofc24/.gitlab-ci.yml | 42 ++++++++++- src/tests/ofc24/Dockerfile | 10 ++- .../ofc24/tests/test_functional_bootstrap.py | 2 +- .../ofc24/tests/test_functional_cleanup.py | 2 +- ...> test_functional_create_service_bidir.py} | 42 +---------- .../test_functional_create_service_unidir.py | 68 +++++++++++++++++ ...> test_functional_delete_service_bidir.py} | 4 +- .../test_functional_delete_service_unidir.py | 74 +++++++++++++++++++ 8 files changed, 197 insertions(+), 47 deletions(-) rename src/tests/ofc24/tests/{test_functional_create_service.py => test_functional_create_service_bidir.py} (61%) create mode 100644 src/tests/ofc24/tests/test_functional_create_service_unidir.py rename src/tests/ofc24/tests/{test_functional_delete_service.py => test_functional_delete_service_bidir.py} (95%) create mode 100644 src/tests/ofc24/tests/test_functional_delete_service_unidir.py diff --git a/src/tests/ofc24/.gitlab-ci.yml b/src/tests/ofc24/.gitlab-ci.yml index 6d5257964..6dc32a181 100644 --- a/src/tests/ofc24/.gitlab-ci.yml +++ b/src/tests/ofc24/.gitlab-ci.yml @@ -45,16 +45,55 @@ end2end_test ofc24: # - build ofc24 before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker rm -f na-t1 na-t2 na-r1 na-r2 + - docker network rm na-br + script: # Download Docker image to run the test - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}:latest" + - docker pull asgamb1/oc23bgp.img:latest + - docker pull asgamb1/flexscale-node.img:latest # Check MicroK8s is ready - microk8s status --wait-ready - kubectl get pods --all-namespaces # Deploy Optical Device Node Agents - - ./src/tests/${TEST_NAME}/deploy-node-agents.sh + - > + docker network create -d bridge --subnet=172.254.253.0/24 --gateway=172.254.253.254 \ + --ip-range=172.254.253.0/24 na-br + - > + docker run -dit --init --name na-t1 --network=na-br --ip 172.254.253.101 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t1.xml:/confd/examples.confd/OC23/platform.xml" \ + asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + - > + docker run -dit --init --name na-t2 --network=na-br --ip 172.254.253.102 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t2.xml:/confd/examples.confd/OC23/platform.xml" \ + asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + - > + docker run -dit --init --name na-r1 --network=na-br --ip 172.254.253.201 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r1.xml:/confd/examples.confd/OC23/platform.xml" \ + asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + - > + docker run -dit --init --name na-r2 --network=na-br --ip 172.254.253.202 \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r2.xml:/confd/examples.confd/OC23/platform.xml" \ + asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh + + + # Wait for initialization of Optical Device Node Agents + - sleep 3 + - docker ps -a + - while ! docker logs na-t1 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done + - while ! docker logs na-t2 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done + - while ! docker logs na-r1 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done + - while ! docker logs na-r2 2>&1 | grep -q '*** ConfD OpenConfig NETCONF agent ***'; do sleep 1; done + - sleep 3 + - docker ps -a + # Configure TeraFlowSDN deployment # Uncomment if DEBUG log level is needed for the components @@ -89,6 +128,7 @@ end2end_test ofc24: --volume "$PWD/tfs_runtime_env_vars.sh:/var/teraflow/tfs_runtime_env_vars.sh" --volume "$PWD/src/tests/${TEST_NAME}:/opt/results" $CI_REGISTRY_IMAGE/${TEST_NAME}:latest + after_script: # Dump TeraFlowSDN component logs - source src/tests/${TEST_NAME}/deploy_specs.sh diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index df42fe338..db1d1d9ef 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -92,10 +92,12 @@ RUN tee ./run_tests.sh < None: - """ - This test validates that KPI values have been inserted into the monitoring database. - We short k KPI descriptors to test. - """ - response = monitoring_client.GetKpiDescriptorList(Empty()) - kpi_descriptors = random.choices(response.kpi_descriptor_list, k=2) - - for kpi_descriptor in kpi_descriptors: - MSG = 'KPI(kpi_uuid={:s}, device_uuid={:s}, endpoint_uuid={:s}, service_uuid={:s}, kpi_sample_type={:s})...' - LOGGER.info(MSG.format( - str(kpi_descriptor.kpi_id.kpi_id.uuid), str(kpi_descriptor.device_id.device_uuid.uuid), - str(kpi_descriptor.endpoint_id.endpoint_uuid.uuid), str(kpi_descriptor.service_id.service_uuid.uuid), - str(KpiSampleType.Name(kpi_descriptor.kpi_sample_type)))) - response = monitoring_client.GetInstantKpi(kpi_descriptor.kpi_id) - kpi_uuid = response.kpi_id.kpi_id.uuid - assert kpi_uuid == kpi_descriptor.kpi_id.kpi_id.uuid - kpi_value_type = response.kpi_value.WhichOneof('value') - if kpi_value_type is None: - MSG = ' KPI({:s}): No instant value found' - LOGGER.warning(MSG.format(str(kpi_uuid))) - else: - kpi_timestamp = response.timestamp.timestamp - assert kpi_timestamp > 0 - assert kpi_value_type == 'floatVal' - kpi_value = getattr(response.kpi_value, kpi_value_type) - MSG = ' KPI({:s}): timestamp={:s} value_type={:s} value={:s}' - LOGGER.info(MSG.format(str(kpi_uuid), str(kpi_timestamp), str(kpi_value_type), str(kpi_value))) diff --git a/src/tests/ofc24/tests/test_functional_create_service_unidir.py b/src/tests/ofc24/tests/test_functional_create_service_unidir.py new file mode 100644 index 000000000..35d9664f7 --- /dev/null +++ b/src/tests/ofc24/tests/test_functional_create_service_unidir.py @@ -0,0 +1,68 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from tests.Fixtures import context_client, monitoring_client # pylint: disable=unused-import +from tests.tools.mock_osm.MockOSM import MockOSM +from .Fixtures import osm_wim # pylint: disable=unused-import +from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-bidir.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_creation_unidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + descriptor_loader.validate() + + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 0 + assert len(response.slice_ids) == 0 + + # Create Connectivity Service + service_uuid = osm_wim.create_connectivity_service(WIM_SERVICE_TYPE, WIM_SERVICE_CONNECTION_POINTS) + osm_wim.get_connectivity_service_status(service_uuid) + + # Ensure slices and services are created + response = context_client.ListSlices(ADMIN_CONTEXT_ID) + LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) + assert len(response.slices) == 1 # OSM slice + + response = context_client.ListServices(ADMIN_CONTEXT_ID) + LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + assert len(response.services) == 2 # 1xL3NM + 1xTAPI + + for service in response.services: + service_id = service.service_id + response = context_client.ListConnections(service_id) + LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) + + if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + assert len(response.connections) == 1 # 1 connection per service + elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + assert len(response.connections) == 1 # 1 connection per service + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) diff --git a/src/tests/ofc24/tests/test_functional_delete_service.py b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py similarity index 95% rename from src/tests/ofc24/tests/test_functional_delete_service.py rename to src/tests/ofc24/tests/test_functional_delete_service_bidir.py index daff29064..64a6161f6 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py @@ -26,10 +26,10 @@ from .Fixtures import osm_wim # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors_emulated.json') +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-bidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) -def test_service_removal(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name +def test_service_removal_bidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name # Ensure slices and services are created response = context_client.ListSlices(ADMIN_CONTEXT_ID) LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) diff --git a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py new file mode 100644 index 000000000..ebdb60255 --- /dev/null +++ b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py @@ -0,0 +1,74 @@ +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from tests.Fixtures import context_client # pylint: disable=unused-import +from tests.tools.mock_osm.MockOSM import MockOSM +from .Fixtures import osm_wim # pylint: disable=unused-import + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-unidir.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_removal_unidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name + # Ensure slices and services are created + response = context_client.ListSlices(ADMIN_CONTEXT_ID) + LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) + assert len(response.slices) == 1 # OSM slice + + response = context_client.ListServices(ADMIN_CONTEXT_ID) + LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + assert len(response.services) == 2 # 1xL3NM + 1xTAPI + + service_uuids = set() + for service in response.services: + service_id = service.service_id + response = context_client.ListConnections(service_id) + LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) + + if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + assert len(response.connections) == 1 # 1 connection per service + service_uuid = service_id.service_uuid.uuid + service_uuids.add(service_uuid) + osm_wim.conn_info[service_uuid] = {} + elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + assert len(response.connections) == 1 # 1 connection per service + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + + # Identify service to delete + assert len(service_uuids) == 1 # assume a single L3NM service has been created + service_uuid = set(service_uuids).pop() + + # Delete Connectivity Service + osm_wim.delete_connectivity_service(service_uuid) + + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 0 + assert len(response.slice_ids) == 0 + + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + descriptor_loader.validate() -- GitLab From 4bc7d644ffe03da28ee9882bda5faa786fe3b882 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 11:49:37 +0000 Subject: [PATCH 09/47] GitLab CI/CD pipeline - OFC'24: - Preliminar code for create/delete bidir and unidir services - Removed unneeded files in Dockerfile --- src/tests/ofc24/Dockerfile | 5 -- .../test_functional_create_service_bidir.py | 54 ++++++------ .../test_functional_create_service_unidir.py | 54 ++++++------ .../test_functional_delete_service_bidir.py | 82 +++++++++++-------- .../test_functional_delete_service_unidir.py | 82 +++++++++++-------- 5 files changed, 156 insertions(+), 121 deletions(-) diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index db1d1d9ef..f9db8c367 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -70,10 +70,6 @@ COPY src/context/__init__.py context/__init__.py COPY src/context/client/. context/client/ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ -#COPY src/monitoring/__init__.py monitoring/__init__.py -#COPY src/monitoring/client/. monitoring/client/ -#COPY src/monitoring/__init__.py monitoring/__init__.py -#COPY src/monitoring/client/. monitoring/client/ COPY src/e2e_orchestrator/__init__.py e2e_orchestrator/__init__.py COPY src/e2e_orchestrator/client/. e2e_orchestrator/client/ COPY src/service/__init__.py service/__init__.py @@ -86,7 +82,6 @@ COPY src/tests/ofc24/descriptors/topology.json ./tests/ofc24/descriptors/topolog COPY src/tests/ofc24/descriptors/service-unidir.json ./tests/ofc24/descriptors/service-unidir.json COPY src/tests/ofc24/descriptors/service-bidir.json ./tests/ofc24/descriptors/service-bidir.json COPY src/tests/ofc24/tests/. ./tests/ofc24/tests/ -COPY src/tests/tools/. ./tests/tools/ RUN tee ./run_tests.sh < Connections[{:d}] = {:s}'.format( + LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - assert len(response.connections) == 1 # 1 connection per service - elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - assert len(response.connections) == 1 # 1 connection per service - else: - str_service = grpc_message_to_json_string(service) - raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + # assert len(response.connections) == 1 # 1 connection per service + #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + # assert len(response.connections) == 1 # 1 connection per service + #else: + # str_service = grpc_message_to_json_string(service) + # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) diff --git a/src/tests/ofc24/tests/test_functional_create_service_unidir.py b/src/tests/ofc24/tests/test_functional_create_service_unidir.py index 35d9664f7..1cc0f43ce 100644 --- a/src/tests/ofc24/tests/test_functional_create_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_create_service_unidir.py @@ -15,14 +15,13 @@ import logging, os from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client, monitoring_client # pylint: disable=unused-import -from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import -from .Objects import WIM_SERVICE_CONNECTION_POINTS, WIM_SERVICE_TYPE +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -30,39 +29,44 @@ LOGGER.setLevel(logging.DEBUG) DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-bidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) -def test_service_creation_unidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name +def test_service_creation_unidir( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name + service_client : ServiceClient, # pylint: disable=redefined-outer-name +): # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client, + service_client=service_client + ) + results = descriptor_loader.process() + check_descriptor_load_results(results, descriptor_loader) descriptor_loader.validate() # Verify the scenario has no services/slices response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.service_ids) == 0 - assert len(response.slice_ids) == 0 - - # Create Connectivity Service - service_uuid = osm_wim.create_connectivity_service(WIM_SERVICE_TYPE, WIM_SERVICE_CONNECTION_POINTS) - osm_wim.get_connectivity_service_status(service_uuid) + #assert len(response.service_ids) == 0 + #assert len(response.slice_ids) == 0 # Ensure slices and services are created response = context_client.ListSlices(ADMIN_CONTEXT_ID) - LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - assert len(response.slices) == 1 # OSM slice + LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) + #assert len(response.slices) == 1 # OSM slice response = context_client.ListServices(ADMIN_CONTEXT_ID) - LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - assert len(response.services) == 2 # 1xL3NM + 1xTAPI + LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + #assert len(response.services) == 2 # 1xL3NM + 1xTAPI for service in response.services: service_id = service.service_id response = context_client.ListConnections(service_id) - LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - assert len(response.connections) == 1 # 1 connection per service - elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - assert len(response.connections) == 1 # 1 connection per service - else: - str_service = grpc_message_to_json_string(service) - raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + # assert len(response.connections) == 1 # 1 connection per service + #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + # assert len(response.connections) == 1 # 1 connection per service + #else: + # str_service = grpc_message_to_json_string(service) + # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) diff --git a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py index 64a6161f6..ee0572df2 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py @@ -14,14 +14,14 @@ import logging, os from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.proto.context_pb2 import ContextId, ServiceId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import -from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -29,46 +29,62 @@ LOGGER.setLevel(logging.DEBUG) DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-bidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) -def test_service_removal_bidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name +def test_service_removal_bidir( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name + service_client : ServiceClient, # pylint: disable=redefined-outer-name +): + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client, + service_client=service_client + ) + descriptor_loader.validate() + + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + #assert len(response.service_ids) == 0 + #assert len(response.slice_ids) == 0 + # Ensure slices and services are created response = context_client.ListSlices(ADMIN_CONTEXT_ID) - LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - assert len(response.slices) == 1 # OSM slice + LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) + #assert len(response.slices) == 1 # OSM slice response = context_client.ListServices(ADMIN_CONTEXT_ID) - LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - assert len(response.services) == 2 # 1xL3NM + 1xTAPI + LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + #assert len(response.services) == 2 # 1xL3NM + 1xTAPI - service_uuids = set() + #service_uuids = set() for service in response.services: service_id = service.service_id response = context_client.ListConnections(service_id) - LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - assert len(response.connections) == 1 # 1 connection per service - service_uuid = service_id.service_uuid.uuid - service_uuids.add(service_uuid) - osm_wim.conn_info[service_uuid] = {} - elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - assert len(response.connections) == 1 # 1 connection per service - else: - str_service = grpc_message_to_json_string(service) - raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + # assert len(response.connections) == 1 # 1 connection per service + # service_uuid = service_id.service_uuid.uuid + # service_uuids.add(service_uuid) + # osm_wim.conn_info[service_uuid] = {} + #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + # assert len(response.connections) == 1 # 1 connection per service + #else: + # str_service = grpc_message_to_json_string(service) + # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) - # Identify service to delete - assert len(service_uuids) == 1 # assume a single L3NM service has been created - service_uuid = set(service_uuids).pop() + ## Identify service to delete + #assert len(service_uuids) == 1 # assume a single L3NM service has been created + #service_uuid = set(service_uuids).pop() - # Delete Connectivity Service - osm_wim.delete_connectivity_service(service_uuid) + ## Delete Service + #service_client.DeleteService(ServiceId(json_service_id(service_uuid, context_uuid))) - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.service_ids) == 0 - assert len(response.slice_ids) == 0 + ## Verify the scenario has no services/slices + #response = context_client.GetContext(ADMIN_CONTEXT_ID) + #assert len(response.service_ids) == 0 + #assert len(response.slice_ids) == 0 - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - descriptor_loader.validate() + ## Load descriptors and validate the base scenario + #descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + #descriptor_loader.validate() diff --git a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py index ebdb60255..0861b103c 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py @@ -14,14 +14,14 @@ import logging, os from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.proto.context_pb2 import ContextId, ServiceId, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from tests.Fixtures import context_client # pylint: disable=unused-import -from tests.tools.mock_osm.MockOSM import MockOSM -from .Fixtures import osm_wim # pylint: disable=unused-import +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -29,46 +29,62 @@ LOGGER.setLevel(logging.DEBUG) DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-unidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) -def test_service_removal_unidir(context_client : ContextClient, osm_wim : MockOSM): # pylint: disable=redefined-outer-name +def test_service_removal_unidir( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name + service_client : ServiceClient, # pylint: disable=redefined-outer-name +): + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client, + service_client=service_client + ) + descriptor_loader.validate() + + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + #assert len(response.service_ids) == 0 + #assert len(response.slice_ids) == 0 + # Ensure slices and services are created response = context_client.ListSlices(ADMIN_CONTEXT_ID) - LOGGER.info('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - assert len(response.slices) == 1 # OSM slice + LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) + #assert len(response.slices) == 1 # OSM slice response = context_client.ListServices(ADMIN_CONTEXT_ID) - LOGGER.info('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - assert len(response.services) == 2 # 1xL3NM + 1xTAPI + LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) + #assert len(response.services) == 2 # 1xL3NM + 1xTAPI - service_uuids = set() + #service_uuids = set() for service in response.services: service_id = service.service_id response = context_client.ListConnections(service_id) - LOGGER.info(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( + LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - assert len(response.connections) == 1 # 1 connection per service - service_uuid = service_id.service_uuid.uuid - service_uuids.add(service_uuid) - osm_wim.conn_info[service_uuid] = {} - elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - assert len(response.connections) == 1 # 1 connection per service - else: - str_service = grpc_message_to_json_string(service) - raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: + # assert len(response.connections) == 1 # 1 connection per service + # service_uuid = service_id.service_uuid.uuid + # service_uuids.add(service_uuid) + # osm_wim.conn_info[service_uuid] = {} + #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: + # assert len(response.connections) == 1 # 1 connection per service + #else: + # str_service = grpc_message_to_json_string(service) + # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) - # Identify service to delete - assert len(service_uuids) == 1 # assume a single L3NM service has been created - service_uuid = set(service_uuids).pop() + ## Identify service to delete + #assert len(service_uuids) == 1 # assume a single L3NM service has been created + #service_uuid = set(service_uuids).pop() - # Delete Connectivity Service - osm_wim.delete_connectivity_service(service_uuid) + ## Delete Service + #service_client.DeleteService(ServiceId(json_service_id(service_uuid, context_uuid))) - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.service_ids) == 0 - assert len(response.slice_ids) == 0 + ## Verify the scenario has no services/slices + #response = context_client.GetContext(ADMIN_CONTEXT_ID) + #assert len(response.service_ids) == 0 + #assert len(response.slice_ids) == 0 - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - descriptor_loader.validate() + ## Load descriptors and validate the base scenario + #descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + #descriptor_loader.validate() -- GitLab From c999bcf7a08f869d537072d9a9ff7f3729981cc4 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 11:54:39 +0000 Subject: [PATCH 10/47] GitLab CI/CD pipeline - OFC'24: - Updated destroy of pipeline manifest --- src/tests/ofc24/.gitlab-ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tests/ofc24/.gitlab-ci.yml b/src/tests/ofc24/.gitlab-ci.yml index 6dc32a181..8ce528244 100644 --- a/src/tests/ofc24/.gitlab-ci.yml +++ b/src/tests/ofc24/.gitlab-ci.yml @@ -46,7 +46,7 @@ end2end_test ofc24: before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker rm -f na-t1 na-t2 na-r1 na-r2 - - docker network rm na-br + - docker network rm -f na-br script: # Download Docker image to run the test @@ -149,7 +149,8 @@ end2end_test ofc24: - docker logs na-r2 # Destroy Optical Device Node Agents - - ./src/tests/${TEST_NAME}/destroy-node-agents.sh + - docker rm -f na-t1 na-t2 na-r1 na-r2 + - docker network rm -f na-br # Clean old docker images - docker images --filter="dangling=true" --quiet | xargs -r docker rmi -- GitLab From ceebb3b77688f54a1b53cfa2de45f6375aaac84d Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 12:42:00 +0000 Subject: [PATCH 11/47] GitLab CI/CD pipeline - OFC'24: - Fixed wrong multi-line commands in pipeline descriptor --- src/tests/ofc24/.gitlab-ci.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/tests/ofc24/.gitlab-ci.yml b/src/tests/ofc24/.gitlab-ci.yml index 8ce528244..f169bf7ee 100644 --- a/src/tests/ofc24/.gitlab-ci.yml +++ b/src/tests/ofc24/.gitlab-ci.yml @@ -60,27 +60,27 @@ end2end_test ofc24: # Deploy Optical Device Node Agents - > - docker network create -d bridge --subnet=172.254.253.0/24 --gateway=172.254.253.254 \ + docker network create -d bridge --subnet=172.254.253.0/24 --gateway=172.254.253.254 --ip-range=172.254.253.0/24 na-br - > - docker run -dit --init --name na-t1 --network=na-br --ip 172.254.253.101 \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t1.xml:/confd/examples.confd/OC23/platform.xml" \ + docker run -dit --init --name na-t1 --network=na-br --ip 172.254.253.101 + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t1.xml:/confd/examples.confd/OC23/platform.xml" asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - > - docker run -dit --init --name na-t2 --network=na-br --ip 172.254.253.102 \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t2.xml:/confd/examples.confd/OC23/platform.xml" \ + docker run -dit --init --name na-t2 --network=na-br --ip 172.254.253.102 + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-tp.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_t2.xml:/confd/examples.confd/OC23/platform.xml" asgamb1/oc23bgp.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - > - docker run -dit --init --name na-r1 --network=na-br --ip 172.254.253.201 \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r1.xml:/confd/examples.confd/OC23/platform.xml" \ + docker run -dit --init --name na-r1 --network=na-br --ip 172.254.253.201 + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r1.xml:/confd/examples.confd/OC23/platform.xml" asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh - > - docker run -dit --init --name na-r2 --network=na-br --ip 172.254.253.202 \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" \ - --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r2.xml:/confd/examples.confd/OC23/platform.xml" \ + docker run -dit --init --name na-r2 --network=na-br --ip 172.254.253.202 + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/startNetconfAgent-mg-on.sh:/confd/examples.confd/OC23/startNetconfAgent.sh" + --volume "$PWD/src/tests/${TEST_NAME}/node-agents-config/platform_r2.xml:/confd/examples.confd/OC23/platform.xml" asgamb1/flexscale-node.img:latest /confd/examples.confd/OC23/startNetconfAgent.sh -- GitLab From 2d54c725320ceac1cf7be7d11418699654ecc2be Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 13:14:49 +0000 Subject: [PATCH 12/47] GitLab CI/CD pipeline - OFC'22: - Corrected kubectl logs for ZTP component --- src/tests/ofc22/.gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/ofc22/.gitlab-ci.yml b/src/tests/ofc22/.gitlab-ci.yml index 013a389bc..810e59169 100644 --- a/src/tests/ofc22/.gitlab-ci.yml +++ b/src/tests/ofc22/.gitlab-ci.yml @@ -96,7 +96,7 @@ end2end_test ofc22: - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/sliceservice -c server - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/monitoringservice -c server - - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/ztpservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/ztpservice -c ztpservice - if docker ps -a | grep ${TEST_NAME}; then docker rm -f ${TEST_NAME}; fi - docker images --filter="dangling=true" --quiet | xargs -r docker rmi #coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' -- GitLab From 736b888aaec0de7cbe9cb8393e3b333713b163f0 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 14:07:26 +0000 Subject: [PATCH 13/47] GitLab CI/CD pipeline - OFC'22, ECOC'22, OFC'24: - Corrected Dockerfile required files --- src/tests/ecoc22/Dockerfile | 2 -- src/tests/ofc22/Dockerfile | 2 -- src/tests/ofc24/Dockerfile | 2 ++ 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tests/ecoc22/Dockerfile b/src/tests/ecoc22/Dockerfile index 3ac134a38..28fc91d5e 100644 --- a/src/tests/ecoc22/Dockerfile +++ b/src/tests/ecoc22/Dockerfile @@ -72,8 +72,6 @@ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ COPY src/monitoring/__init__.py monitoring/__init__.py COPY src/monitoring/client/. monitoring/client/ -COPY src/monitoring/__init__.py monitoring/__init__.py -COPY src/monitoring/client/. monitoring/client/ COPY src/e2e_orchestrator/__init__.py e2e_orchestrator/__init__.py COPY src/e2e_orchestrator/client/. e2e_orchestrator/client/ COPY src/service/__init__.py service/__init__.py diff --git a/src/tests/ofc22/Dockerfile b/src/tests/ofc22/Dockerfile index 4817bd93a..4cba83466 100644 --- a/src/tests/ofc22/Dockerfile +++ b/src/tests/ofc22/Dockerfile @@ -72,8 +72,6 @@ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ COPY src/monitoring/__init__.py monitoring/__init__.py COPY src/monitoring/client/. monitoring/client/ -COPY src/monitoring/__init__.py monitoring/__init__.py -COPY src/monitoring/client/. monitoring/client/ COPY src/e2e_orchestrator/__init__.py e2e_orchestrator/__init__.py COPY src/e2e_orchestrator/client/. e2e_orchestrator/client/ COPY src/service/__init__.py service/__init__.py diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index f9db8c367..bef7d25fe 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -70,6 +70,8 @@ COPY src/context/__init__.py context/__init__.py COPY src/context/client/. context/client/ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ +COPY src/monitoring/__init__.py monitoring/__init__.py +COPY src/monitoring/client/. monitoring/client/ COPY src/e2e_orchestrator/__init__.py e2e_orchestrator/__init__.py COPY src/e2e_orchestrator/client/. e2e_orchestrator/client/ COPY src/service/__init__.py service/__init__.py -- GitLab From 0cf73ab700e789cb9b5f3fb0cc364acffb4a1226 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 17:24:35 +0000 Subject: [PATCH 14/47] NBI component: - Updated README.md file - Fixed libyang version in Dockerfile - Fixed libyang version in install_requirements.sh - Added folder libyang to global gitignore - Added generation of .gitignore file for libyang/build --- .gitignore | 3 +++ install_requirements.sh | 3 +++ src/nbi/Dockerfile | 3 +++ src/nbi/README.md | 3 +++ 4 files changed, 12 insertions(+) diff --git a/.gitignore b/.gitignore index a9144d669..20b98c30c 100644 --- a/.gitignore +++ b/.gitignore @@ -171,5 +171,8 @@ local_k8s_deployment.sh # asdf configuration .tool-versions +# libyang build files +libyang/ + # Other logs **/logs/*.log.* diff --git a/install_requirements.sh b/install_requirements.sh index c59ea7f13..65f60c121 100755 --- a/install_requirements.sh +++ b/install_requirements.sh @@ -32,8 +32,11 @@ sudo apt-get --yes --quiet --quiet update sudo apt-get --yes --quiet --quiet install build-essential cmake libpcre2-dev python3-dev python3-cffi mkdir libyang git clone https://github.com/CESNET/libyang.git libyang +git fetch +git checkout v2.1.148 mkdir libyang/build cd libyang/build +echo "*" > .gitignore cmake -D CMAKE_BUILD_TYPE:String="Release" .. make sudo make install diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index eda4d2956..cb81256da 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -61,6 +61,9 @@ RUN apt-get --yes --quiet --quiet update && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/libyang RUN git clone https://github.com/CESNET/libyang.git /var/libyang +WORKDIR /var/libyang +RUN git fetch +RUN git checkout v2.1.148 RUN mkdir -p /var/libyang/build WORKDIR /var/libyang/build RUN cmake -D CMAKE_BUILD_TYPE:String="Release" .. diff --git a/src/nbi/README.md b/src/nbi/README.md index c5ed72704..32902a0b3 100644 --- a/src/nbi/README.md +++ b/src/nbi/README.md @@ -18,6 +18,9 @@ sudo apt-get install python3-dev gcc python3-cffi ```bash mkdir ~/tfs-ctrl/libyang git clone https://github.com/CESNET/libyang.git ~/tfs-ctrl/libyang +cd ~/tfs-ctrl/libyang +git fetch +git checkout v2.1.148 mkdir ~/tfs-ctrl/libyang/build cd ~/tfs-ctrl/libyang/build cmake -D CMAKE_BUILD_TYPE:String="Release" .. -- GitLab From 50e456a0b6e1f69de9f6a3b4e3e4f1445acf3490 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 17:47:11 +0000 Subject: [PATCH 15/47] GitLab CI/CD pipeline - OFC'24: - Added missing script headers --- .../node-agents-config/startNetconfAgent-mg-on.sh | 13 +++++++++++++ .../node-agents-config/startNetconfAgent-tp.sh | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh b/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh index fe5ad5618..e54496b40 100755 --- a/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh +++ b/src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh @@ -1,4 +1,17 @@ #!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. echo 'Cleaning...' make clean diff --git a/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh b/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh index afc28cee7..4e2ec0686 100755 --- a/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh +++ b/src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh @@ -1,4 +1,17 @@ #!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. echo 'Cleaning...' make clean -- GitLab From 500bdb62becfcb4f7dad31a7a2883db167ac54f9 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 5 Apr 2024 18:15:23 +0000 Subject: [PATCH 16/47] GitLab CI/CD pipeline - OFC'24: - Corrected IP addresses and ports of node agents in topology descriptor --- src/tests/ofc24/descriptors/topology.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/tests/ofc24/descriptors/topology.json b/src/tests/ofc24/descriptors/topology.json index 6ae521c76..85bbad55e 100644 --- a/src/tests/ofc24/descriptors/topology.json +++ b/src/tests/ofc24/descriptors/topology.json @@ -16,8 +16,8 @@ }} ], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2023"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.254.253.101"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2022"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { "username": "admin", "password": "admin", "force_running": false, "hostkey_verify": false, "look_for_keys": false, "allow_agent": false, "commit_per_rule": false, @@ -36,8 +36,8 @@ }} ], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2024"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.254.253.102"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2022"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { "username": "admin", "password": "admin", "force_running": false, "hostkey_verify": false, "look_for_keys": false, "allow_agent": false, "commit_per_rule": false, @@ -68,8 +68,8 @@ }} ], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2025"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.254.253.201"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2022"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { "username": "admin", "password": "admin", "force_running": false, "hostkey_verify": false, "look_for_keys": false, "allow_agent": false, "commit_per_rule": false, @@ -105,8 +105,8 @@ }} ], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.15"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2026"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.254.253.202"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "2022"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { "username": "admin", "password": "admin", "force_running": false, "hostkey_verify": false, "look_for_keys": false, "allow_agent": false, "commit_per_rule": false, -- GitLab From 60dd4d21c5ebdc626b202bf39d4fbd8538896ef1 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 8 Apr 2024 15:40:33 +0000 Subject: [PATCH 17/47] Service component: - Enhanced collection of Optical Controller settings --- src/service/service/tools/OpticalTools.py | 75 +++++++++++++++-------- 1 file changed, 51 insertions(+), 24 deletions(-) diff --git a/src/service/service/tools/OpticalTools.py b/src/service/service/tools/OpticalTools.py index 206524371..20cd6b42a 100644 --- a/src/service/service/tools/OpticalTools.py +++ b/src/service/service/tools/OpticalTools.py @@ -13,35 +13,58 @@ # limitations under the License. # -import json -import requests -import uuid -from common.Constants import * +import functools, json, logging, requests, uuid from typing import List +from common.Constants import ServiceNameEnum from common.proto.context_pb2 import( Device, DeviceId, Service, Connection, EndPointId, TopologyId, ContextId, Uuid, ConfigRule, ConfigActionEnum, ConfigRule_Custom ) from common.proto.pathcomp_pb2 import PathCompReply from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, find_environment_variables, get_env_var_name + ENVVAR_SUFIX_SERVICE_BASEURL_HTTP, ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + find_environment_variables, get_env_var_name +) +from service.service.tools.replies import ( + reply_uni_txt, optical_band_uni_txt, reply_bid_txt, optical_band_bid_txt ) -from service.service.tools.replies import reply_uni_txt, optical_band_uni_txt, reply_bid_txt, optical_band_bid_txt log = logging.getLogger(__name__) -testing = False +TESTING = False + +get_optical_controller_setting = functools.partial(get_env_var_name, ServiceNameEnum.OPTICALCONTROLLER) +VAR_NAME_OPTICAL_CTRL_BASEURL_HTTP = get_optical_controller_setting(ENVVAR_SUFIX_SERVICE_BASEURL_HTTP) +VAR_NAME_OPTICAL_CTRL_SCHEMA = get_optical_controller_setting('SCHEMA') +VAR_NAME_OPTICAL_CTRL_HOST = get_optical_controller_setting(ENVVAR_SUFIX_SERVICE_HOST) +VAR_NAME_OPTICAL_CTRL_PORT = get_optical_controller_setting(ENVVAR_SUFIX_SERVICE_PORT_GRPC) + +OPTICAL_CTRL_BASE_URL = '{:s}://{:s}:{:s}/OpticalTFS' + +def get_optical_controller_base_url() -> str: + settings = find_environment_variables([ + VAR_NAME_OPTICAL_CTRL_BASEURL_HTTP, + VAR_NAME_OPTICAL_CTRL_SCHEMA, + VAR_NAME_OPTICAL_CTRL_HOST, + VAR_NAME_OPTICAL_CTRL_PORT, + ]) + base_url = settings.get(VAR_NAME_OPTICAL_CTRL_BASEURL_HTTP) + if base_url is not None: + log.debug('Optical Controller: base_url={:s}'.format(str(base_url))) + return base_url + + host = settings.get(VAR_NAME_OPTICAL_CTRL_HOST) + port = int(settings.get(VAR_NAME_OPTICAL_CTRL_PORT, 80)) + + MSG = 'Optical Controller not found: settings={:s}' + if host is None: raise Exception(MSG.format(str(settings))) + if port is None: raise Exception(MSG.format(str(settings))) -VAR_NAME_OPTICAL_CONTROLLER_HOST = get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_HOST) -VAR_NAME_OPTICAL_CONTROLLER_PORT = get_env_var_name(ServiceNameEnum.OPTICALCONTROLLER, ENVVAR_SUFIX_SERVICE_PORT_GRPC) + schema = settings.get(VAR_NAME_OPTICAL_CTRL_SCHEMA, 'http') + base_url = OPTICAL_CTRL_BASE_URL.format(schema, host, port) + log.debug('Optical Controller: base_url={:s}'.format(str(base_url))) + return base_url -opticalcontrollers_url = find_environment_variables([ - VAR_NAME_OPTICAL_CONTROLLER_HOST, - VAR_NAME_OPTICAL_CONTROLLER_PORT, -]) -OPTICAL_IP = opticalcontrollers_url.get(VAR_NAME_OPTICAL_CONTROLLER_HOST) -OPTICAL_PORT = opticalcontrollers_url.get(VAR_NAME_OPTICAL_CONTROLLER_PORT) -log.info(str(OPTICAL_IP), str(OPTICAL_PORT)) def get_uuids_from_names(devices: List[Device], device_name: str, port_name: str): device_uuid = "" @@ -79,17 +102,18 @@ def get_device_name_from_uuid(devices: List[Device], device_uuid: str): def add_lightpath(src, dst, bitrate, bidir, ob_band) -> str: - if not testing: + if not TESTING: urlx = "" headers = {"Content-Type": "application/json"} + base_url = get_optical_controller_base_url() if ob_band is None: if bidir is None: bidir = 1 - urlx = "http://{}:{}/OpticalTFS/AddFlexLightpath/{}/{}/{}/{}".format(OPTICAL_IP, OPTICAL_PORT, src, dst, bitrate, bidir) + urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, bitrate, bidir) else: if bidir is None: bidir = 1 - urlx = "http://{}:{}/OpticalTFS/AddFlexLightpath/{}/{}/{}/{}/{}".format(OPTICAL_IP, OPTICAL_PORT, src, dst, bitrate, bidir, ob_band) + urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, bitrate, bidir, ob_band) r = requests.put(urlx, headers=headers) reply = r.text return reply @@ -101,8 +125,9 @@ def add_lightpath(src, dst, bitrate, bidir, ob_band) -> str: def get_optical_band(idx) -> str: - if not testing: - urlx = "http://{}:{}/OpticalTFS/GetOpticalBand/{}".format(OPTICAL_IP, OPTICAL_PORT, idx) + if not TESTING: + base_url = get_optical_controller_base_url() + urlx = "{:s}/GetOpticalBand/{:s}".format(base_url, idx) headers = {"Content-Type": "application/json"} r = requests.get(urlx, headers=headers) reply = r.text @@ -116,8 +141,9 @@ def get_optical_band(idx) -> str: def delete_lightpath(flow_id, src, dst, bitrate) -> str: reply = "200" - if not testing: - urlx = "http://{}:{}/OpticalTFS/DelLightpath/{}/{}/{}/{}".format(OPTICAL_IP, OPTICAL_PORT, flow_id, src, dst, bitrate) + if not TESTING: + base_url = get_optical_controller_base_url() + urlx = "{:s}/DelLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, flow_id, src, dst, bitrate) headers = {"Content-Type": "application/json"} r = requests.delete(urlx, headers=headers) @@ -126,7 +152,8 @@ def delete_lightpath(flow_id, src, dst, bitrate) -> str: def get_lightpaths() -> str: - urlx = "http://{}:{}/OpticalTFS/GetLightpaths".format(OPTICAL_IP, OPTICAL_PORT) + base_url = get_optical_controller_base_url() + urlx = "{:s}/GetLightpaths".format(base_url) headers = {"Content-Type": "application/json"} r = requests.get(urlx, headers=headers) -- GitLab From 5377075da4798b96b470a2f218bb0a7e55e2ee33 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 8 Apr 2024 16:36:02 +0000 Subject: [PATCH 18/47] GitLab CI/CD pipeline - OFC'24: - Correct order of TFS components being deployed when optical controller is activated --- src/tests/ofc24/deploy_specs.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/tests/ofc24/deploy_specs.sh b/src/tests/ofc24/deploy_specs.sh index e7458dc9d..4ade75923 100755 --- a/src/tests/ofc24/deploy_specs.sh +++ b/src/tests/ofc24/deploy_specs.sh @@ -30,7 +30,14 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui" #export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" # Uncomment to activate Optical Controller -export TFS_COMPONENTS="${TFS_COMPONENTS} opticalcontroller" +# To manage optical connections, "service" requires "opticalcontroller" to be deployed +# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the +# "opticalcontroller" only if "service" is already in TFS_COMPONENTS, and re-export it. +if [[ "$TFS_COMPONENTS" == *"service"* ]]; then + BEFORE="${TFS_COMPONENTS% service*}" + AFTER="${TFS_COMPONENTS#* service}" + export TFS_COMPONENTS="${BEFORE} opticalcontroller service ${AFTER}" +fi # Uncomment to activate ZTP #export TFS_COMPONENTS="${TFS_COMPONENTS} ztp" -- GitLab From c61310adfaea187e28a41c11f6811885050ec1b3 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 8 Apr 2024 17:34:23 +0000 Subject: [PATCH 19/47] Service component: - Corrected format of optical controller URL's port number --- src/service/service/tools/OpticalTools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/service/service/tools/OpticalTools.py b/src/service/service/tools/OpticalTools.py index 20cd6b42a..ad2f8cbec 100644 --- a/src/service/service/tools/OpticalTools.py +++ b/src/service/service/tools/OpticalTools.py @@ -39,7 +39,7 @@ VAR_NAME_OPTICAL_CTRL_SCHEMA = get_optical_controller_setting('SCHEMA') VAR_NAME_OPTICAL_CTRL_HOST = get_optical_controller_setting(ENVVAR_SUFIX_SERVICE_HOST) VAR_NAME_OPTICAL_CTRL_PORT = get_optical_controller_setting(ENVVAR_SUFIX_SERVICE_PORT_GRPC) -OPTICAL_CTRL_BASE_URL = '{:s}://{:s}:{:s}/OpticalTFS' +OPTICAL_CTRL_BASE_URL = '{:s}://{:s}:{:d}/OpticalTFS' def get_optical_controller_base_url() -> str: settings = find_environment_variables([ -- GitLab From cd80faa13caddc80e552f8391081a3555d9e8bb5 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 9 Apr 2024 13:25:48 +0000 Subject: [PATCH 20/47] Service component: - Corrected format of URLs in OpticalTools.py --- src/service/service/tools/OpticalTools.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/service/service/tools/OpticalTools.py b/src/service/service/tools/OpticalTools.py index ad2f8cbec..1837bf688 100644 --- a/src/service/service/tools/OpticalTools.py +++ b/src/service/service/tools/OpticalTools.py @@ -109,11 +109,11 @@ def add_lightpath(src, dst, bitrate, bidir, ob_band) -> str: if ob_band is None: if bidir is None: bidir = 1 - urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, bitrate, bidir) + urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, str(bitrate), str(bidir)) else: if bidir is None: bidir = 1 - urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, bitrate, bidir, ob_band) + urlx = "{:s}/AddFlexLightpath/{:s}/{:s}/{:s}/{:s}/{:s}".format(base_url, src, dst, str(bitrate), str(bidir), str(ob_band)) r = requests.put(urlx, headers=headers) reply = r.text return reply @@ -127,7 +127,7 @@ def add_lightpath(src, dst, bitrate, bidir, ob_band) -> str: def get_optical_band(idx) -> str: if not TESTING: base_url = get_optical_controller_base_url() - urlx = "{:s}/GetOpticalBand/{:s}".format(base_url, idx) + urlx = "{:s}/GetOpticalBand/{:s}".format(base_url, str(idx)) headers = {"Content-Type": "application/json"} r = requests.get(urlx, headers=headers) reply = r.text @@ -143,7 +143,7 @@ def delete_lightpath(flow_id, src, dst, bitrate) -> str: reply = "200" if not TESTING: base_url = get_optical_controller_base_url() - urlx = "{:s}/DelLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, flow_id, src, dst, bitrate) + urlx = "{:s}/DelLightpath/{:s}/{:s}/{:s}/{:s}".format(base_url, str(flow_id), src, dst, str(bitrate)) headers = {"Content-Type": "application/json"} r = requests.delete(urlx, headers=headers) -- GitLab From f85eaa28fcf6dd586a15fbab371ca5164e135602 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 9 Apr 2024 16:16:44 +0000 Subject: [PATCH 21/47] Context component: - Corrected case in *opticalconfig* symbols --- src/context/service/ContextServiceServicerImpl.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/context/service/ContextServiceServicerImpl.py b/src/context/service/ContextServiceServicerImpl.py index a102fa176..379705372 100644 --- a/src/context/service/ContextServiceServicerImpl.py +++ b/src/context/service/ContextServiceServicerImpl.py @@ -305,7 +305,7 @@ class ContextServiceServicerImpl(ContextServiceServicer, ContextPolicyServiceSer @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetOpticalConfig(self, request : Empty, context : grpc.ServicerContext) -> OpticalConfigList: result = get_opticalconfig(self.db_engine) - return OpticalConfigList(OpticalConfigs=result) + return OpticalConfigList(opticalconfigs=result) @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def SetOpticalConfig(self, request : OpticalConfig, context : grpc.ServicerContext) -> OpticalConfigId: @@ -315,6 +315,4 @@ class ContextServiceServicerImpl(ContextServiceServicer, ContextPolicyServiceSer @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def SelectOpticalConfig(self, request : OpticalConfigId, context : grpc.ServicerContext) -> OpticalConfig: result = select_opticalconfig(self.db_engine, request) - optical_config_id = OpticalConfigId() - optical_config_id.CopyFrom(result.OpticalConfig_id) - return OpticalConfig(config=result.config, OpticalConfig_id=optical_config_id) + return OpticalConfig(config=result.config, opticalconfig_id=result.opticalconfig_id) -- GitLab From f9fcd9ff532eadec1aed247a348470f4a49e1c27 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 9 Apr 2024 16:32:27 +0000 Subject: [PATCH 22/47] GitLab CI/CD pipeline: - Deactivated unneeded tests --- .gitlab-ci.yml | 20 ++++++++++---------- src/tests/.gitlab-ci.yml | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d7c2e21b..b33b5b3df 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,19 +22,19 @@ stages: # include the individual .gitlab-ci.yml of each micro-service and tests include: #- local: '/manifests/.gitlab-ci.yml' - - local: '/src/monitoring/.gitlab-ci.yml' + ###- local: '/src/monitoring/.gitlab-ci.yml' - local: '/src/nbi/.gitlab-ci.yml' - local: '/src/context/.gitlab-ci.yml' - local: '/src/device/.gitlab-ci.yml' - local: '/src/service/.gitlab-ci.yml' - - local: '/src/dbscanserving/.gitlab-ci.yml' - - local: '/src/opticalattackmitigator/.gitlab-ci.yml' - - local: '/src/opticalattackdetector/.gitlab-ci.yml' - - local: '/src/opticalattackmanager/.gitlab-ci.yml' + ###- local: '/src/dbscanserving/.gitlab-ci.yml' + ###- local: '/src/opticalattackmitigator/.gitlab-ci.yml' + ###- local: '/src/opticalattackdetector/.gitlab-ci.yml' + ###- local: '/src/opticalattackmanager/.gitlab-ci.yml' - local: '/src/opticalcontroller/.gitlab-ci.yml' - - local: '/src/ztp/.gitlab-ci.yml' - - local: '/src/policy/.gitlab-ci.yml' - - local: '/src/forecaster/.gitlab-ci.yml' + ###- local: '/src/ztp/.gitlab-ci.yml' + ###- local: '/src/policy/.gitlab-ci.yml' + ###- local: '/src/forecaster/.gitlab-ci.yml' #- local: '/src/webui/.gitlab-ci.yml' #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' @@ -43,8 +43,8 @@ include: #- local: '/src/interdomain/.gitlab-ci.yml' - local: '/src/pathcomp/.gitlab-ci.yml' #- local: '/src/dlt/.gitlab-ci.yml' - - local: '/src/load_generator/.gitlab-ci.yml' - - local: '/src/bgpls_speaker/.gitlab-ci.yml' + ###- local: '/src/load_generator/.gitlab-ci.yml' + ###- local: '/src/bgpls_speaker/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index b7345bbd1..36bfd6636 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -14,9 +14,9 @@ # include the individual .gitlab-ci.yml of each end-to-end integration test include: - - local: '/src/tests/ofc22/.gitlab-ci.yml' + ###- local: '/src/tests/ofc22/.gitlab-ci.yml' #- local: '/src/tests/oeccpsc22/.gitlab-ci.yml' - - local: '/src/tests/ecoc22/.gitlab-ci.yml' + ###- local: '/src/tests/ecoc22/.gitlab-ci.yml' #- local: '/src/tests/nfvsdn22/.gitlab-ci.yml' #- local: '/src/tests/ofc23/.gitlab-ci.yml' - local: '/src/tests/ofc24/.gitlab-ci.yml' -- GitLab From 62093d79535c576c000d5038f8c8b5575c6b9af2 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Wed, 10 Apr 2024 10:56:23 +0000 Subject: [PATCH 23/47] Optical Controller component: - Added log message to debug issue --- src/opticalcontroller/OpticalController.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/opticalcontroller/OpticalController.py b/src/opticalcontroller/OpticalController.py index c2805695a..ec8c4db2c 100644 --- a/src/opticalcontroller/OpticalController.py +++ b/src/opticalcontroller/OpticalController.py @@ -85,6 +85,7 @@ class AddFlexLightpath(Resource): if rsa is not None: flow_id, optical_band_id = rsa.rsa_fs_computation(src, dst, bitrate, bidir, band) print (f"flow_id {flow_id} and optical_band_id {optical_band_id} ") + LOGGER.warning('flow_id={:s} rsa.db_flows={:s}'.format(str(flow_id), str(rsa.db_flows))) if flow_id is not None: if rsa.db_flows[flow_id]["op-mode"] == 0: return 'No path found', 404 -- GitLab From bf8f0f3b38c3e4e94a08879f2f4f0a6a11a4fe0b Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 11 Apr 2024 15:44:26 +0000 Subject: [PATCH 24/47] Service component: - Corrected config generation in TaskExecutor::configure_optical_device() --- src/service/service/task_scheduler/TaskExecutor.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/service/service/task_scheduler/TaskExecutor.py b/src/service/service/task_scheduler/TaskExecutor.py index 5c5747970..fdfcb903b 100644 --- a/src/service/service/task_scheduler/TaskExecutor.py +++ b/src/service/service/task_scheduler/TaskExecutor.py @@ -122,17 +122,16 @@ class TaskExecutor: optical_config_id = OpticalConfigId() optical_config_id.opticalconfig_uuid = device.device_id.device_uuid.uuid optical_config = OpticalConfig() - setting = settings.value if settings else "" + setting = settings.value if settings else '' - new_config = {} try: result = self._context_client.SelectOpticalConfig(optical_config_id) - new_config = json.loads(result.config) - if result is not None : + if result is not None: + new_config = json.loads(result.config) new_config["new_config"] = setting new_config["is_opticalband"] = is_opticalband new_config["flow"] = flows - result.config = str(new_config) + result.config = json.dumps(new_config) optical_config.CopyFrom(result) self._device_client.ConfigureOpticalDevice(optical_config) self._store_grpc_object(CacheableObjectType.DEVICE, device_key, device) -- GitLab From 14db9b7c6317d021d29c88541593eb716a1804cf Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 11 Apr 2024 15:46:01 +0000 Subject: [PATCH 25/47] OFC'24 test: - Corrected tests create/delete service unidir/bidir - Added run-tests-locally.sh script - Removed unneeded README.md file --- src/tests/ofc24/README.md | 21 ----- src/tests/ofc24/run-tests-locally.sh | 22 ++++++ .../test_functional_create_service_bidir.py | 30 ++++---- .../test_functional_create_service_unidir.py | 30 ++++---- .../test_functional_delete_service_bidir.py | 76 ++++++++----------- .../test_functional_delete_service_unidir.py | 76 ++++++++----------- 6 files changed, 116 insertions(+), 139 deletions(-) delete mode 100644 src/tests/ofc24/README.md create mode 100755 src/tests/ofc24/run-tests-locally.sh diff --git a/src/tests/ofc24/README.md b/src/tests/ofc24/README.md deleted file mode 100644 index 93e95fc64..000000000 --- a/src/tests/ofc24/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# OFC'24 - Test scenario - -## Start Topology -Topology is composed of 2 transponders managed through OpenConfig and 2 Multi-granular ROAMDS -Strat the topology executing the following command: -```bash -sudo ./start_topo.sh -``` - -## Populate the TFS context and topology -Pushing the JSON files following the file indexes, i.e, 1, 2, 3, ... -The last JSON file with ID 7 is the service. -To check the service is onboarded successfully go into the TFS WebUI and check the `Service` tab. - -## Check configuration in devices -Check if the devices are configured properly. -To check that, run, for each device (X={1, 2, 3, 4}): -```bash -screen -r tX -``` -To release the terminal, press `Ctrl + A + D` diff --git a/src/tests/ofc24/run-tests-locally.sh b/src/tests/ofc24/run-tests-locally.sh new file mode 100755 index 000000000..14cf78500 --- /dev/null +++ b/src/tests/ofc24/run-tests-locally.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +source ~/tfs-ctrl/tfs_runtime_env_vars.sh +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_bootstrap.py +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_create_service_unidir.py +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_delete_service_unidir.py +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_create_service_bidir.py +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_delete_service_bidir.py +pytest --verbose --log-level=INFO ~/tfs-ctrl/ofc24/tests/test_functional_cleanup.py diff --git a/src/tests/ofc24/tests/test_functional_create_service_bidir.py b/src/tests/ofc24/tests/test_functional_create_service_bidir.py index 82408eaa5..e910c946d 100644 --- a/src/tests/ofc24/tests/test_functional_create_service_bidir.py +++ b/src/tests/ofc24/tests/test_functional_create_service_bidir.py @@ -14,7 +14,7 @@ import logging, os from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id @@ -41,32 +41,32 @@ def test_service_creation_bidir( ) results = descriptor_loader.process() check_descriptor_load_results(results, descriptor_loader) - descriptor_loader.validate() - # Verify the scenario has no services/slices + # Verify the scenario has 1 service and 0 slices response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 - # Ensure slices and services are created + # Check there are no slices response = context_client.ListSlices(ADMIN_CONTEXT_ID) LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - #assert len(response.slices) == 1 # OSM slice + assert len(response.slices) == 0 + # Check there is 1 service response = context_client.ListServices(ADMIN_CONTEXT_ID) LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - #assert len(response.services) == 2 # 1xL3NM + 1xTAPI + assert len(response.services) == 1 for service in response.services: service_id = service.service_id + assert service.service_status.service_status == ServiceStatusEnum.SERVICESTATUS_ACTIVE + response = context_client.ListConnections(service_id) LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - # assert len(response.connections) == 1 # 1 connection per service - #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - # assert len(response.connections) == 1 # 1 connection per service - #else: - # str_service = grpc_message_to_json_string(service) - # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + if service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + assert len(response.connections) == 2 + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) diff --git a/src/tests/ofc24/tests/test_functional_create_service_unidir.py b/src/tests/ofc24/tests/test_functional_create_service_unidir.py index 1cc0f43ce..5b2550ae1 100644 --- a/src/tests/ofc24/tests/test_functional_create_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_create_service_unidir.py @@ -14,7 +14,7 @@ import logging, os from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceTypeEnum +from common.proto.context_pb2 import ContextId, ServiceStatusEnum, ServiceTypeEnum from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id @@ -41,32 +41,32 @@ def test_service_creation_unidir( ) results = descriptor_loader.process() check_descriptor_load_results(results, descriptor_loader) - descriptor_loader.validate() - # Verify the scenario has no services/slices + # Verify the scenario has 1 service and 0 slices response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 - # Ensure slices and services are created + # Check there are no slices response = context_client.ListSlices(ADMIN_CONTEXT_ID) LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - #assert len(response.slices) == 1 # OSM slice + assert len(response.slices) == 0 + # Check there is 1 service response = context_client.ListServices(ADMIN_CONTEXT_ID) LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - #assert len(response.services) == 2 # 1xL3NM + 1xTAPI + assert len(response.services) == 1 for service in response.services: service_id = service.service_id + assert service.service_status.service_status == ServiceStatusEnum.SERVICESTATUS_ACTIVE + response = context_client.ListConnections(service_id) LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - # assert len(response.connections) == 1 # 1 connection per service - #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - # assert len(response.connections) == 1 # 1 connection per service - #else: - # str_service = grpc_message_to_json_string(service) - # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + if service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + assert len(response.connections) == 2 + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) diff --git a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py index ee0572df2..a337336a8 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_bidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_bidir.py @@ -12,79 +12,67 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, os +import logging +from typing import Set, Tuple from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader +from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient -from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import +from tests.Fixtures import context_client, service_client # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-bidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_service_removal_bidir( context_client : ContextClient, # pylint: disable=redefined-outer-name - device_client : DeviceClient, # pylint: disable=redefined-outer-name service_client : ServiceClient, # pylint: disable=redefined-outer-name ): - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader( - descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client, - service_client=service_client - ) - descriptor_loader.validate() - - # Verify the scenario has no services/slices + # Verify the scenario has 1 service and 0 slices response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 - # Ensure slices and services are created + # Check there are no slices response = context_client.ListSlices(ADMIN_CONTEXT_ID) LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - #assert len(response.slices) == 1 # OSM slice + assert len(response.slices) == 0 + # Check there is 1 service response = context_client.ListServices(ADMIN_CONTEXT_ID) LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - #assert len(response.services) == 2 # 1xL3NM + 1xTAPI + assert len(response.services) == 1 - #service_uuids = set() + context_service_uuids : Set[Tuple[str, str]] = set() for service in response.services: service_id = service.service_id + assert service.service_status.service_status == ServiceStatusEnum.SERVICESTATUS_ACTIVE + response = context_client.ListConnections(service_id) LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - # assert len(response.connections) == 1 # 1 connection per service - # service_uuid = service_id.service_uuid.uuid - # service_uuids.add(service_uuid) - # osm_wim.conn_info[service_uuid] = {} - #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - # assert len(response.connections) == 1 # 1 connection per service - #else: - # str_service = grpc_message_to_json_string(service) - # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + if service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + assert len(response.connections) == 2 + context_uuid = service_id.context_id.context_uuid.uuid + service_uuid = service_id.service_uuid.uuid + context_service_uuids.add((context_uuid, service_uuid)) + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) - ## Identify service to delete - #assert len(service_uuids) == 1 # assume a single L3NM service has been created - #service_uuid = set(service_uuids).pop() + # Identify service to delete + assert len(context_service_uuids) == 1 + context_uuid, service_uuid = set(context_service_uuids).pop() - ## Delete Service - #service_client.DeleteService(ServiceId(json_service_id(service_uuid, context_uuid))) + # Delete Service + service_client.DeleteService(ServiceId(**json_service_id(service_uuid, json_context_id(context_uuid)))) - ## Verify the scenario has no services/slices - #response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 - - ## Load descriptors and validate the base scenario - #descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - #descriptor_loader.validate() + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 0 + assert len(response.slice_ids) == 0 diff --git a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py index 0861b103c..9b0381c49 100644 --- a/src/tests/ofc24/tests/test_functional_delete_service_unidir.py +++ b/src/tests/ofc24/tests/test_functional_delete_service_unidir.py @@ -12,79 +12,67 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, os +import logging +from typing import Set, Tuple from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId, ServiceId, ServiceTypeEnum -from common.tools.descriptor.Loader import DescriptorLoader +from common.proto.context_pb2 import ContextId, ServiceId, ServiceStatusEnum, ServiceTypeEnum from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Service import json_service_id from context.client.ContextClient import ContextClient -from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient -from tests.Fixtures import context_client, device_client, service_client # pylint: disable=unused-import +from tests.Fixtures import context_client, service_client # pylint: disable=unused-import LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'service-unidir.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_service_removal_unidir( context_client : ContextClient, # pylint: disable=redefined-outer-name - device_client : DeviceClient, # pylint: disable=redefined-outer-name service_client : ServiceClient, # pylint: disable=redefined-outer-name ): - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader( - descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client, - service_client=service_client - ) - descriptor_loader.validate() - - # Verify the scenario has no services/slices + # Verify the scenario has 1 service and 0 slices response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 - # Ensure slices and services are created + # Check there are no slices response = context_client.ListSlices(ADMIN_CONTEXT_ID) LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response))) - #assert len(response.slices) == 1 # OSM slice + assert len(response.slices) == 0 + # Check there is 1 service response = context_client.ListServices(ADMIN_CONTEXT_ID) LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response))) - #assert len(response.services) == 2 # 1xL3NM + 1xTAPI + assert len(response.services) == 1 - #service_uuids = set() + context_service_uuids : Set[Tuple[str, str]] = set() for service in response.services: service_id = service.service_id + assert service.service_status.service_status == ServiceStatusEnum.SERVICESTATUS_ACTIVE + response = context_client.ListConnections(service_id) LOGGER.warning(' ServiceId[{:s}] => Connections[{:d}] = {:s}'.format( grpc_message_to_json_string(service_id), len(response.connections), grpc_message_to_json_string(response))) - #if service.service_type == ServiceTypeEnum.SERVICETYPE_L3NM: - # assert len(response.connections) == 1 # 1 connection per service - # service_uuid = service_id.service_uuid.uuid - # service_uuids.add(service_uuid) - # osm_wim.conn_info[service_uuid] = {} - #elif service.service_type == ServiceTypeEnum.SERVICETYPE_TAPI_CONNECTIVITY_SERVICE: - # assert len(response.connections) == 1 # 1 connection per service - #else: - # str_service = grpc_message_to_json_string(service) - # raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) + if service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + assert len(response.connections) == 2 + context_uuid = service_id.context_id.context_uuid.uuid + service_uuid = service_id.service_uuid.uuid + context_service_uuids.add((context_uuid, service_uuid)) + else: + str_service = grpc_message_to_json_string(service) + raise Exception('Unexpected ServiceType: {:s}'.format(str_service)) - ## Identify service to delete - #assert len(service_uuids) == 1 # assume a single L3NM service has been created - #service_uuid = set(service_uuids).pop() + # Identify service to delete + assert len(context_service_uuids) == 1 + context_uuid, service_uuid = set(context_service_uuids).pop() - ## Delete Service - #service_client.DeleteService(ServiceId(json_service_id(service_uuid, context_uuid))) + # Delete Service + service_client.DeleteService(ServiceId(**json_service_id(service_uuid, json_context_id(context_uuid)))) - ## Verify the scenario has no services/slices - #response = context_client.GetContext(ADMIN_CONTEXT_ID) - #assert len(response.service_ids) == 0 - #assert len(response.slice_ids) == 0 - - ## Load descriptors and validate the base scenario - #descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - #descriptor_loader.validate() + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 0 + assert len(response.slice_ids) == 0 -- GitLab From 9790bd3c5bceb401161cf7c50a3edb58ac52cf85 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 11 Apr 2024 16:13:11 +0000 Subject: [PATCH 26/47] GitLab CI/CD pipeline: - Reactivated tests --- .gitlab-ci.yml | 20 ++++++++++---------- src/tests/.gitlab-ci.yml | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b33b5b3df..2d7c2e21b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,19 +22,19 @@ stages: # include the individual .gitlab-ci.yml of each micro-service and tests include: #- local: '/manifests/.gitlab-ci.yml' - ###- local: '/src/monitoring/.gitlab-ci.yml' + - local: '/src/monitoring/.gitlab-ci.yml' - local: '/src/nbi/.gitlab-ci.yml' - local: '/src/context/.gitlab-ci.yml' - local: '/src/device/.gitlab-ci.yml' - local: '/src/service/.gitlab-ci.yml' - ###- local: '/src/dbscanserving/.gitlab-ci.yml' - ###- local: '/src/opticalattackmitigator/.gitlab-ci.yml' - ###- local: '/src/opticalattackdetector/.gitlab-ci.yml' - ###- local: '/src/opticalattackmanager/.gitlab-ci.yml' + - local: '/src/dbscanserving/.gitlab-ci.yml' + - local: '/src/opticalattackmitigator/.gitlab-ci.yml' + - local: '/src/opticalattackdetector/.gitlab-ci.yml' + - local: '/src/opticalattackmanager/.gitlab-ci.yml' - local: '/src/opticalcontroller/.gitlab-ci.yml' - ###- local: '/src/ztp/.gitlab-ci.yml' - ###- local: '/src/policy/.gitlab-ci.yml' - ###- local: '/src/forecaster/.gitlab-ci.yml' + - local: '/src/ztp/.gitlab-ci.yml' + - local: '/src/policy/.gitlab-ci.yml' + - local: '/src/forecaster/.gitlab-ci.yml' #- local: '/src/webui/.gitlab-ci.yml' #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' #- local: '/src/l3_centralizedattackdetector/.gitlab-ci.yml' @@ -43,8 +43,8 @@ include: #- local: '/src/interdomain/.gitlab-ci.yml' - local: '/src/pathcomp/.gitlab-ci.yml' #- local: '/src/dlt/.gitlab-ci.yml' - ###- local: '/src/load_generator/.gitlab-ci.yml' - ###- local: '/src/bgpls_speaker/.gitlab-ci.yml' + - local: '/src/load_generator/.gitlab-ci.yml' + - local: '/src/bgpls_speaker/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 36bfd6636..b7345bbd1 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -14,9 +14,9 @@ # include the individual .gitlab-ci.yml of each end-to-end integration test include: - ###- local: '/src/tests/ofc22/.gitlab-ci.yml' + - local: '/src/tests/ofc22/.gitlab-ci.yml' #- local: '/src/tests/oeccpsc22/.gitlab-ci.yml' - ###- local: '/src/tests/ecoc22/.gitlab-ci.yml' + - local: '/src/tests/ecoc22/.gitlab-ci.yml' #- local: '/src/tests/nfvsdn22/.gitlab-ci.yml' #- local: '/src/tests/ofc23/.gitlab-ci.yml' - local: '/src/tests/ofc24/.gitlab-ci.yml' -- GitLab From a419c7b6e8457ad10a72c406c09822c568ff5b9f Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 11 Apr 2024 16:22:23 +0000 Subject: [PATCH 27/47] Deploy scripts: - Corrected deployment order in my_deploy.sh for opticalcontroller and service components --- my_deploy.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/my_deploy.sh b/my_deploy.sh index 7dd5e5c3e..4e705622b 100755 --- a/my_deploy.sh +++ b/my_deploy.sh @@ -29,7 +29,14 @@ export TFS_COMPONENTS="context device pathcomp service slice nbi webui load_gene #export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" # Uncomment to activate Optical Controller -#export TFS_COMPONENTS="${TFS_COMPONENTS} opticalcontroller" +# To manage optical connections, "service" requires "opticalcontroller" to be deployed +# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the +# "opticalcontroller" only if "service" is already in TFS_COMPONENTS, and re-export it. +#if [[ "$TFS_COMPONENTS" == *"service"* ]]; then +# BEFORE="${TFS_COMPONENTS% service*}" +# AFTER="${TFS_COMPONENTS#* service}" +# export TFS_COMPONENTS="${BEFORE} opticalcontroller service ${AFTER}" +#fi # Uncomment to activate ZTP #export TFS_COMPONENTS="${TFS_COMPONENTS} ztp" -- GitLab From 62a30586927deb2442baa266f7386d49fd2a8ee7 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 11 Apr 2024 16:23:47 +0000 Subject: [PATCH 28/47] Optical Controller component: - Reduced level of some debug log messages --- src/opticalcontroller/OpticalController.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opticalcontroller/OpticalController.py b/src/opticalcontroller/OpticalController.py index ec8c4db2c..326862f93 100644 --- a/src/opticalcontroller/OpticalController.py +++ b/src/opticalcontroller/OpticalController.py @@ -85,7 +85,7 @@ class AddFlexLightpath(Resource): if rsa is not None: flow_id, optical_band_id = rsa.rsa_fs_computation(src, dst, bitrate, bidir, band) print (f"flow_id {flow_id} and optical_band_id {optical_band_id} ") - LOGGER.warning('flow_id={:s} rsa.db_flows={:s}'.format(str(flow_id), str(rsa.db_flows))) + LOGGER.debug('flow_id={:s} rsa.db_flows={:s}'.format(str(flow_id), str(rsa.db_flows))) if flow_id is not None: if rsa.db_flows[flow_id]["op-mode"] == 0: return 'No path found', 404 -- GitLab From 3364f79c439ed0b7f15a5766da342bf38d9f46a3 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Fri, 12 Apr 2024 12:52:08 +0000 Subject: [PATCH 29/47] Scripts: - Updated license headers in update_license_headers.py script --- scripts/update_license_headers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 45baf39e0..62bfffd0e 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -27,8 +27,9 @@ FILE_PATH_SKIPPED = 'out-skipped.txt' FILE_PATH_NO_HEADER = 'out-no-header.txt' FILE_PATH_UPDATED = 'out-updated.txt' -RE_OLD_COPYRIGHT = re.compile(r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)') -STR_NEW_COPYRIGHT = 'Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/)' +#RE_OLD_COPYRIGHT = re.compile(r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)') +RE_OLD_COPYRIGHT = re.compile(r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)') +STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' def skip_file(file_path : str) -> bool: if file_path.endswith('.pyc'): return True -- GitLab From 1e84d8c0d014103faf42c6c5226ca249c42356db Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 15 Apr 2024 17:16:58 +0000 Subject: [PATCH 30/47] Scripts: - Updated license headers in update_license_headers.py script --- scripts/update_license_headers.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 62bfffd0e..88f511387 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -27,8 +27,10 @@ FILE_PATH_SKIPPED = 'out-skipped.txt' FILE_PATH_NO_HEADER = 'out-no-header.txt' FILE_PATH_UPDATED = 'out-updated.txt' -#RE_OLD_COPYRIGHT = re.compile(r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)') -RE_OLD_COPYRIGHT = re.compile(r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)') +RE_OLD_COPYRIGHTS = [ + re.compile(r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)'), + re.compile(r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)'), +] STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' def skip_file(file_path : str) -> bool: @@ -68,8 +70,10 @@ def skip_file(file_path : str) -> bool: return False def process_line(line_in : str) -> str: - line_out = RE_OLD_COPYRIGHT.sub(STR_NEW_COPYRIGHT, line_in) - if line_out != line_in: return line_out + for re_old_copyright in RE_OLD_COPYRIGHTS: + if re_old_copyright.match(line_in) is None: continue + line_out = re_old_copyright.sub(STR_NEW_COPYRIGHT, line_in) + return line_out return line_in def process_file( -- GitLab From 0989a478c64c7dab0399988efc72cd7439f83612 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 15 Apr 2024 17:19:02 +0000 Subject: [PATCH 31/47] Scripts: - Updated file mode update in update_license_headers.py script --- scripts/update_license_headers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 88f511387..62a166f17 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -87,6 +87,7 @@ def process_file( temp_file_path = file_path + '.temp' replaced = False + file_mode = os.stat(file_path) try: with open(file_path, encoding='UTF-8') as source: with open(temp_file_path, 'w', encoding='UTF-8') as target: @@ -103,6 +104,7 @@ def process_file( file_updated.write(file_path + '\n') os.rename(temp_file_path, file_path) + os.chmod(file_path, file_mode) def main() -> int: with open(FILE_PATH_NO_HEADER, 'w', encoding='UTF-8') as file_no_header: -- GitLab From c2f1fdbb605db46dd2ebfc646efe1d189b13887b Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Mon, 15 Apr 2024 17:20:14 +0000 Subject: [PATCH 32/47] Scripts: - Updated file mode update in update_license_headers.py script --- scripts/update_license_headers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 62a166f17..da839ba0a 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -87,7 +87,7 @@ def process_file( temp_file_path = file_path + '.temp' replaced = False - file_mode = os.stat(file_path) + file_stat = os.stat(file_path) try: with open(file_path, encoding='UTF-8') as source: with open(temp_file_path, 'w', encoding='UTF-8') as target: @@ -104,7 +104,7 @@ def process_file( file_updated.write(file_path + '\n') os.rename(temp_file_path, file_path) - os.chmod(file_path, file_mode) + os.chmod(file_path, file_stat.st_mode) def main() -> int: with open(FILE_PATH_NO_HEADER, 'w', encoding='UTF-8') as file_no_header: -- GitLab From d68f6218de82a05df7d82cae6d61a59579b71bc4 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 10:37:14 +0000 Subject: [PATCH 33/47] Scripts - update_license_headers.py: - Added missing skip patterns - Added multiple old copyright lines - Added logic to keep new-line chars - Not finished --- scripts/update_license_headers.py | 33 ++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index da839ba0a..562352faa 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -28,12 +28,18 @@ FILE_PATH_NO_HEADER = 'out-no-header.txt' FILE_PATH_UPDATED = 'out-updated.txt' RE_OLD_COPYRIGHTS = [ - re.compile(r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)'), - re.compile(r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)'), + r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)', + r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)', ] +RE_OLD_COPYRIGHTS = [ + (re.compile(re_old_copyright), re.compile(r'.*{}.*'.format(re_old_copyright))) + for re_old_copyright in RE_OLD_COPYRIGHTS +] + STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' def skip_file(file_path : str) -> bool: + if os.path.islink(file_path): return True if file_path.endswith('.pyc'): return True if file_path.endswith('_pb2_grpc.py'): return True if file_path.endswith('_pb2.py'): return True @@ -43,10 +49,14 @@ def skip_file(file_path : str) -> bool: if file_path.endswith('.zip'): return True if file_path.endswith('.zip'): return True if file_path.endswith('.jar'): return True + if file_path.endswith('.onnx'): return True if file_path.endswith('/tstat'): return True if file_path.endswith('/.gitignore'): return True if file_path.endswith('/.gitkeep'): return True if file_path.endswith('/coverage/.coverage'): return True + if file_path.endswith('/grpc/grpcurl/grpcurl'): return True + if file_path.endswith('/probe/probe-tfs/target/x86_64-unknown-linux-musl/release/tfsagent'): return True + if file_path.endswith('/probe/probe-tfs/target/x86_64-unknown-linux-musl/release/tfsping'): return True if file_path.startswith('./netconf_openconfig/'): return True if file_path.startswith('./tmp/'): return True if '/manifests/cttc-ols/' in file_path: return True @@ -70,9 +80,16 @@ def skip_file(file_path : str) -> bool: return False def process_line(line_in : str) -> str: - for re_old_copyright in RE_OLD_COPYRIGHTS: - if re_old_copyright.match(line_in) is None: continue - line_out = re_old_copyright.sub(STR_NEW_COPYRIGHT, line_in) + print('line_in', line_in) + for re_match, re_sub in RE_OLD_COPYRIGHTS: + print('re_match', re_match) + print('re_sub', re_sub) + match = re_match.match(line_in) + print('match', match) + if match is None: continue + print('matched!') + line_out = re_sub.sub(STR_NEW_COPYRIGHT, line_in) + print('line_out', line_out) return line_out return line_in @@ -89,8 +106,8 @@ def process_file( replaced = False file_stat = os.stat(file_path) try: - with open(file_path, encoding='UTF-8') as source: - with open(temp_file_path, 'w', encoding='UTF-8') as target: + with open(file_path, encoding='UTF-8', newline='') as source: + with open(temp_file_path, 'w', encoding='UTF-8', newline='') as target: for line_in in source: line_out = process_line(line_in) target.write(line_out) @@ -106,6 +123,8 @@ def process_file( os.rename(temp_file_path, file_path) os.chmod(file_path, file_stat.st_mode) + raise Exception() + def main() -> int: with open(FILE_PATH_NO_HEADER, 'w', encoding='UTF-8') as file_no_header: with open(FILE_PATH_SKIPPED, 'w', encoding='UTF-8') as file_skipped: -- GitLab From d70cdd05ffacfba65c5a97c23084a419a6101cb8 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 10:41:11 +0000 Subject: [PATCH 34/47] Scripts - update_license_headers.py: - Corrected regular experssions - Not finished --- scripts/update_license_headers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index 562352faa..ee9f1ef9a 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -32,7 +32,7 @@ RE_OLD_COPYRIGHTS = [ r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)', ] RE_OLD_COPYRIGHTS = [ - (re.compile(re_old_copyright), re.compile(r'.*{}.*'.format(re_old_copyright))) + (re.compile(r'.*{}.*'.format(re_old_copyright)), re.compile(re_old_copyright)) for re_old_copyright in RE_OLD_COPYRIGHTS ] -- GitLab From 364480484b6e66dfa804e6190a2fc1c2f0ca65da Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 10:45:23 +0000 Subject: [PATCH 35/47] Scripts - update_license_headers.py: - Code cleanup - Not finished --- scripts/update_license_headers.py | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index ee9f1ef9a..eda54099a 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -27,6 +27,7 @@ FILE_PATH_SKIPPED = 'out-skipped.txt' FILE_PATH_NO_HEADER = 'out-no-header.txt' FILE_PATH_UPDATED = 'out-updated.txt' +STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' RE_OLD_COPYRIGHTS = [ r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)', r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)', @@ -36,8 +37,6 @@ RE_OLD_COPYRIGHTS = [ for re_old_copyright in RE_OLD_COPYRIGHTS ] -STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' - def skip_file(file_path : str) -> bool: if os.path.islink(file_path): return True if file_path.endswith('.pyc'): return True @@ -80,16 +79,10 @@ def skip_file(file_path : str) -> bool: return False def process_line(line_in : str) -> str: - print('line_in', line_in) for re_match, re_sub in RE_OLD_COPYRIGHTS: - print('re_match', re_match) - print('re_sub', re_sub) match = re_match.match(line_in) - print('match', match) if match is None: continue - print('matched!') line_out = re_sub.sub(STR_NEW_COPYRIGHT, line_in) - print('line_out', line_out) return line_out return line_in @@ -123,8 +116,6 @@ def process_file( os.rename(temp_file_path, file_path) os.chmod(file_path, file_stat.st_mode) - raise Exception() - def main() -> int: with open(FILE_PATH_NO_HEADER, 'w', encoding='UTF-8') as file_no_header: with open(FILE_PATH_SKIPPED, 'w', encoding='UTF-8') as file_skipped: -- GitLab From d5c59f9de2b2f344e5f5cf85f4d50dd0dbfaa2b0 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 10:52:27 +0000 Subject: [PATCH 36/47] Scripts - update_license_headers.py: - Updated copyright line --- scripts/update_license_headers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/update_license_headers.py b/scripts/update_license_headers.py index eda54099a..ded746483 100644 --- a/scripts/update_license_headers.py +++ b/scripts/update_license_headers.py @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -27,7 +27,8 @@ FILE_PATH_SKIPPED = 'out-skipped.txt' FILE_PATH_NO_HEADER = 'out-no-header.txt' FILE_PATH_UPDATED = 'out-updated.txt' -STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI TeraFlowSDN - TFS OSG/SDG (https://tfs.etsi.org/)' +STR_NEW_COPYRIGHT = 'Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)' + RE_OLD_COPYRIGHTS = [ r'Copyright\ 2021\-2023\ H2020\ TeraFlow\ \(https\:\/\/www\.teraflow\-h2020\.eu\/\)', r'Copyright\ 2022\-2023\ ETSI\ TeraFlowSDN\ \-\ TFS\ OSG\ \(https\:\/\/tfs\.etsi\.org\/\)', -- GitLab From 6c4f8a97117ae28c71ffef36c4d43714202b2f97 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 15:00:18 +0000 Subject: [PATCH 37/47] Scripts - add_license_header_to_files.sh: - Updated copyright line - Updated ignore filters --- scripts/add_license_header_to_files.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/add_license_header_to_files.sh b/scripts/add_license_header_to_files.sh index 4c11fc316..d2d6d22de 100755 --- a/scripts/add_license_header_to_files.sh +++ b/scripts/add_license_header_to_files.sh @@ -16,7 +16,7 @@ docker pull ghcr.io/google/addlicense:latest docker run -it -v ${PWD}:/src ghcr.io/google/addlicense \ - -l apache -c "H2020 TeraFlow (https://www.teraflow-h2020.eu/)" -y 2021-2023 \ + -l apache -c "ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)" -y 2022-2024 \ -ignore "data/*" -ignore "data/**" -ignore "tmp/*" -ignore "tmp/**" -ignore "manifests/cttc-ols/*" \ -ignore "coverage/*" -ignore "coverage/**" -ignore ".vscode/*" -ignore ".vscode/**" \ -ignore ".git/*" -ignore ".git/**" -ignore "proto/uml/*" -ignore "proto/uml/**" \ @@ -25,6 +25,21 @@ docker run -it -v ${PWD}:/src ghcr.io/google/addlicense \ -ignore "src/.pytest_cache/*" -ignore "src/.pytest_cache/**" -ignore ".pytest_cache/*" -ignore ".pytest_cache/**" \ -ignore "src/**/target/generated-sources/grpc/*" -ignore "src/**/target/generated-sources/grpc/**" \ -ignore "src/**/*_pb2.py" -ignore "src/**/*_pb2_grpc.py" \ + -ignore "src/device/service/drivers/gnmi_openconfig/gnmi/*.proto" \ -ignore "src/device/service/drivers/openconfig/templates/**/*.xml" \ + -ignore "src/device/service/drivers/openconfig/templates/ACL/openconfig_acl.py" \ + -ignore "src/device/service/drivers/openconfig/templates/VPN/openconfig_interfaces.py" \ + -ignore "src/device/service/drivers/openconfig/templates/VPN/openconfig_network_instance.py" \ + -ignore "src/device/service/drivers/openconfig/templates/VPN/openconfig_routing_policy.py" \ + -ignore "src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/**/*.py" \ + -ignore "src/policy/target/kubernetes/kubernetes.yml" \ + -ignore "src/ztp/target/kubernetes/kubernetes.yml" \ -ignore "src/**/.mvn/*" -ignore "src/**/.mvn/**" \ + -ignore "hackfest/**/*_pb2.py" -ignore "hackfest/**/*_pb2_grpc.py" \ + -ignore "hackfest/netconf/**/binding_*.py" -ignore "hackfest/netconf/**/binding_*.py" \ + -ignore "hackfest/yang/**/binding_*.py" -ignore "hackfest/yang/**/binding_*.py" \ + -ignore "hackfest/netconf-oc/openconfig/*" -ignore "hackfest/netconf-oc/openconfig/**" \ + -ignore "hackfest/restconf/connectionserver/*" -ignore "hackfest/restconf/connectionserver/**" \ + -ignore "hackfest/restconf/topologyserver/*" -ignore "hackfest/restconf/topologyserver/**" \ + -ignore "hackfest/tapi/server/*" -ignore "hackfest/tapi/server/**" \ * -- GitLab From ee179f5fba0e1ead67513a5787ec8da21928258d Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Tue, 16 Apr 2024 16:43:08 +0000 Subject: [PATCH 38/47] Added missing file headers --- .../data/sql_hash_join_full_scan_tests.sql | 14 ++++++++++++++ .../ofc24/node-agents-config/platform_r1.xml | 16 ++++++++++++++++ .../ofc24/node-agents-config/platform_r2.xml | 16 ++++++++++++++++ .../ofc24/node-agents-config/platform_t1.xml | 16 ++++++++++++++++ .../ofc24/node-agents-config/platform_t2.xml | 16 ++++++++++++++++ .../ssl_not_working/mock-mw-sdn-ctrl.yaml | 14 ++++++++++++++ src/tests/tools/mock_mw_sdn_ctrl/test_mw.py | 14 ++++++++++++++ 7 files changed, 106 insertions(+) diff --git a/src/context/data/sql_hash_join_full_scan_tests.sql b/src/context/data/sql_hash_join_full_scan_tests.sql index ebead1be6..29ac593e2 100644 --- a/src/context/data/sql_hash_join_full_scan_tests.sql +++ b/src/context/data/sql_hash_join_full_scan_tests.sql @@ -1,3 +1,17 @@ +-- Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. + -- When inserting config rules, for instance related to device -- If we insert few rules (3~4 rows), does a lookup join with more rows does hash join which is less performant... -- To be investigated... diff --git a/src/tests/ofc24/node-agents-config/platform_r1.xml b/src/tests/ofc24/node-agents-config/platform_r1.xml index 625d7048a..b9412d1bd 100644 --- a/src/tests/ofc24/node-agents-config/platform_r1.xml +++ b/src/tests/ofc24/node-agents-config/platform_r1.xml @@ -1,3 +1,19 @@ + + diff --git a/src/tests/ofc24/node-agents-config/platform_r2.xml b/src/tests/ofc24/node-agents-config/platform_r2.xml index 65f7ee458..317203483 100644 --- a/src/tests/ofc24/node-agents-config/platform_r2.xml +++ b/src/tests/ofc24/node-agents-config/platform_r2.xml @@ -1,3 +1,19 @@ + + diff --git a/src/tests/ofc24/node-agents-config/platform_t1.xml b/src/tests/ofc24/node-agents-config/platform_t1.xml index 09f316211..2ef7a1a4e 100644 --- a/src/tests/ofc24/node-agents-config/platform_t1.xml +++ b/src/tests/ofc24/node-agents-config/platform_t1.xml @@ -1,3 +1,19 @@ + + diff --git a/src/tests/ofc24/node-agents-config/platform_t2.xml b/src/tests/ofc24/node-agents-config/platform_t2.xml index 03c643c91..f071badaa 100644 --- a/src/tests/ofc24/node-agents-config/platform_t2.xml +++ b/src/tests/ofc24/node-agents-config/platform_t2.xml @@ -1,3 +1,19 @@ + + diff --git a/src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/mock-mw-sdn-ctrl.yaml b/src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/mock-mw-sdn-ctrl.yaml index 05b89f949..bccbfc987 100644 --- a/src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/mock-mw-sdn-ctrl.yaml +++ b/src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/mock-mw-sdn-ctrl.yaml @@ -1,3 +1,17 @@ +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + kind: Namespace apiVersion: v1 metadata: diff --git a/src/tests/tools/mock_mw_sdn_ctrl/test_mw.py b/src/tests/tools/mock_mw_sdn_ctrl/test_mw.py index 0329d30ad..3165662b1 100644 --- a/src/tests/tools/mock_mw_sdn_ctrl/test_mw.py +++ b/src/tests/tools/mock_mw_sdn_ctrl/test_mw.py @@ -1,3 +1,17 @@ +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import json, logging, requests from requests.auth import HTTPBasicAuth from typing import Optional -- GitLab From c29d73cd3d5f6538c9ae5250fc7e8fe3b2366782 Mon Sep 17 00:00:00 2001 From: gifrerenom Date: Thu, 18 Apr 2024 12:51:05 +0000 Subject: [PATCH 39/47] Updated copyright in file headers --- .gitlab-ci.yml | 2 +- clean_testing_environment.sh | 2 +- common_requirements.in | 2 +- coverage/.coveragerc.template | 2 +- data/perf/old/MW/generate.sh | 2 +- data/perf/old/MW/generate_plot.py | 2 +- data/perf/old/OpenConfig/generate.sh | 2 +- data/perf/old/OpenConfig/generate_plot.py | 2 +- data/perf/old/TE/te-cdf.py | 2 +- data/perf/old/XR/generate.sh | 2 +- data/perf/old/XR/generate_plot.py | 2 +- data/perf/old/emulated/generate.sh | 2 +- data/perf/old/emulated/generate_plot.py | 2 +- deploy/all.sh | 2 +- deploy/component.sh | 2 +- deploy/crdb.sh | 2 +- deploy/expose_dashboard.sh | 2 +- deploy/mock_blockchain.sh | 2 +- deploy/nats.sh | 2 +- deploy/qdb.sh | 2 +- deploy/show.sh | 2 +- deploy/tfs.sh | 2 +- hackfest/containerlab/tfs-scenario.clab.yml | 2 +- hackfest/gnmi/srlinux.clab.yml | 2 +- hackfest/grpc/connection.proto | 2 +- hackfest/grpc/connection/create.py | 2 +- hackfest/grpc/connection/list.py | 2 +- hackfest/grpc/connectionService.proto | 2 +- hackfest/grpc/connectionService/connectionService_client.py | 2 +- hackfest/grpc/connectionService/connectionService_server.py | 2 +- hackfest/grpc/connectionServiceWithNotif.proto | 2 +- .../connectionServiceWithNotif_client.py | 2 +- .../connectionServiceWithNotif_server.py | 2 +- hackfest/grpc/topologyService.proto | 2 +- hackfest/grpc/topologyService/topologyService_client.py | 2 +- hackfest/grpc/topologyService/topologyService_server.py | 2 +- hackfest/kafka/pub.py | 2 +- hackfest/kafka/sub.py | 2 +- hackfest/mock_osm/MockOSM.py | 2 +- hackfest/mock_osm/__init__.py | 2 +- hackfest/mock_osm/__main__.py | 2 +- hackfest/netconf-oc/device_definition.py | 2 +- hackfest/netconf-oc/interfaces.xml | 2 +- hackfest/netconf-oc/platform.xml | 2 +- hackfest/netconf-oc/server_openconfig.py | 2 +- hackfest/netconf/client_topology.py | 2 +- hackfest/netconf/connection/client_connection.py | 2 +- hackfest/netconf/connection/server_topology_connection.py | 2 +- hackfest/netconf/connection/topology.xml | 2 +- hackfest/netconf/server_topology.py | 2 +- hackfest/netconf/topology.xml | 2 +- hackfest/onos_api/onos_flows.py | 2 +- hackfest/onos_api/onos_topology.py | 2 +- hackfest/openconfig/generated.go | 2 +- hackfest/p4/__init__.py | 2 +- hackfest/p4/deploy_specs.sh | 2 +- hackfest/p4/run_test_01_bootstrap.sh | 2 +- hackfest/p4/run_test_02_create_service.sh | 2 +- hackfest/p4/run_test_03_delete_service.sh | 2 +- hackfest/p4/run_test_04_cleanup.sh | 2 +- hackfest/p4/setup.sh | 2 +- hackfest/p4/tests/BuildDescriptors.py | 2 +- hackfest/p4/tests/LoadDescriptors.py | 2 +- hackfest/p4/tests/Objects.py | 2 +- hackfest/p4/tests/__init__.py | 2 +- hackfest/p4/tests/test_functional_bootstrap.py | 2 +- hackfest/p4/tests/test_functional_cleanup.py | 2 +- hackfest/p4/tests/test_functional_create_service.py | 2 +- hackfest/p4/tests/test_functional_delete_service.py | 2 +- hackfest/restconf/connection.yaml | 2 +- hackfest/restconf/connectionserver/swagger_server/database.py | 2 +- .../connectionserver/swagger_server/swagger/swagger.yaml | 2 +- hackfest/restconf/topology.yaml | 2 +- .../topologyserver/swagger_server/swagger/swagger.yaml | 2 +- hackfest/tapi/client/tapi-client.sh | 2 +- hackfest/tapi/server/run.sh | 2 +- hackfest/tapi/server/tapi_server/__main__.py | 2 +- hackfest/tapi/server/tapi_server/database.py | 2 +- hackfest/tapi/server/tapi_server/swagger/swagger.yaml | 2 +- hackfest/tapi/tapi-connectivity.yaml | 2 +- hackfest/tapi/tapi_app/requirements.sh | 2 +- hackfest/tapi/tapi_app/tapi_app.py | 2 +- hackfest/yang/connection/connection.py | 2 +- hackfest/yang/topology.py | 2 +- hackfest/yang/topology.xml | 2 +- install_requirements.sh | 2 +- manifests/.gitlab-ci.yml | 2 +- manifests/bgpls_speakerservice.yaml | 2 +- manifests/cachingservice.yaml | 2 +- manifests/cockroachdb/single-node.yaml | 2 +- manifests/contextservice.yaml | 2 +- manifests/dbscanservingservice.yaml | 2 +- manifests/deviceservice.yaml | 2 +- manifests/dltservice.yaml | 2 +- manifests/e2e_orchestratorservice.yaml | 2 +- manifests/forecasterservice.yaml | 2 +- manifests/interdomainservice.yaml | 2 +- manifests/l3_attackmitigatorservice.yaml | 2 +- manifests/l3_centralizedattackdetectorservice.yaml | 2 +- manifests/l3_distributedattackdetectorservice.yaml | 2 +- manifests/load_generatorservice.yaml | 2 +- manifests/mock_blockchain.yaml | 2 +- manifests/monitoringservice.yaml | 2 +- manifests/nbiservice.yaml | 2 +- manifests/nginx_ingress_http.yaml | 2 +- manifests/opticalattackdetectorservice.yaml | 2 +- manifests/opticalattackmanagerservice.yaml | 2 +- manifests/opticalattackmitigatorservice.yaml | 2 +- manifests/opticalcontrollerservice.yaml | 2 +- manifests/pathcompservice.yaml | 2 +- manifests/policyservice.yaml | 2 +- manifests/prometheus.yaml | 2 +- manifests/questdb/manifest.yaml | 2 +- manifests/servicemonitors.yaml | 2 +- manifests/serviceservice.yaml | 2 +- manifests/sliceservice.yaml | 2 +- manifests/teservice.yaml | 2 +- manifests/webuiservice.yaml | 2 +- manifests/ztpservice.yaml | 2 +- my_deploy.sh | 2 +- proto/acl.proto | 2 +- proto/attack_mitigator.proto | 2 +- proto/bgpls.proto | 2 +- proto/context.proto | 2 +- proto/context_policy.proto | 2 +- proto/dbscanserving.proto | 2 +- proto/device.proto | 2 +- proto/distributed_cybersecurity.proto | 2 +- proto/dlt_connector.proto | 2 +- proto/dlt_gateway.proto | 2 +- proto/e2eorchestrator.proto | 2 +- proto/forecaster.proto | 2 +- proto/generate_code_erlang.sh | 2 +- proto/generate_code_java.sh | 2 +- proto/generate_code_python.sh | 4 ++-- proto/generate_uml.sh | 2 +- proto/health.proto | 2 +- proto/interdomain.proto | 2 +- proto/kpi_sample_types.proto | 2 +- proto/l3_attackmitigator.proto | 2 +- proto/l3_centralizedattackdetector.proto | 2 +- proto/load_generator.proto | 2 +- proto/monitoring.proto | 2 +- proto/nbi.proto | 2 +- proto/openconfig_device.proto | 2 +- proto/optical_attack_detector.proto | 2 +- proto/optical_attack_mitigator.proto | 2 +- proto/pathcomp.proto | 2 +- proto/policy.proto | 2 +- proto/policy_action.proto | 2 +- proto/policy_condition.proto | 2 +- proto/service.proto | 2 +- proto/slice.proto | 2 +- proto/src/erlang/rebar.config | 2 +- proto/src/erlang/src/tfpb.app.src | 2 +- proto/src/python/__init__.py | 2 +- proto/src/python/asyncio/__init__.py | 2 +- proto/te.proto | 2 +- proto/ztp.proto | 2 +- scripts/add_license_header_to_files.sh | 2 +- scripts/build_run_report_tests_locally.sh | 2 +- scripts/cockroachdb_client.sh | 2 +- scripts/create_component.sh | 2 +- scripts/dump_logs.sh | 2 +- scripts/expose_ingress_grpc.sh | 2 +- scripts/old/configure_dashboards_in_kubernetes.sh | 2 +- scripts/old/deploy_in_kubernetes.sh | 2 +- scripts/old/open_dashboard.sh | 2 +- scripts/old/open_webui.sh | 2 +- scripts/report_coverage_all.sh | 2 +- scripts/report_coverage_common.sh | 2 +- scripts/report_coverage_context.sh | 2 +- scripts/report_coverage_device.sh | 2 +- scripts/report_coverage_l3_attackmitigator.sh | 2 +- scripts/report_coverage_l3_centralizedattackdetector.sh | 2 +- scripts/report_coverage_l3_distributedattackdetector.sh | 2 +- scripts/report_coverage_nbi.sh | 2 +- scripts/report_coverage_pathcomp.sh | 2 +- scripts/report_coverage_service.sh | 2 +- scripts/report_coverage_slice.sh | 2 +- scripts/run_tests_docker.sh | 2 +- scripts/run_tests_locally-context.sh | 2 +- scripts/run_tests_locally-device-all.sh | 2 +- scripts/run_tests_locally-device-emulated.sh | 2 +- scripts/run_tests_locally-device-ietf-actn.sh | 2 +- scripts/run_tests_locally-device-microwave.sh | 2 +- scripts/run_tests_locally-device-openconfig.sh | 2 +- scripts/run_tests_locally-device-p4.sh | 2 +- scripts/run_tests_locally-device-tapi.sh | 2 +- scripts/run_tests_locally-forecaster.sh | 2 +- scripts/run_tests_locally-interdomain-compute-domains.sh | 2 +- scripts/run_tests_locally-interdomain-topology-abstractor.sh | 2 +- scripts/run_tests_locally-nbi-all.sh | 2 +- scripts/run_tests_locally-nbi-etsi-bwm.sh | 2 +- scripts/run_tests_locally-nbi-ietf-l2vpn.sh | 2 +- scripts/run_tests_locally-nbi-ietf-l3vpn.sh | 2 +- scripts/run_tests_locally-nbi-ietf-network.sh | 2 +- scripts/run_tests_locally-nbi-tfs-api.sh | 2 +- scripts/run_tests_locally-optical-attack-detector.sh | 2 +- scripts/run_tests_locally-pathcomp-frontend.sh | 2 +- scripts/run_tests_locally-service.sh | 2 +- scripts/run_tests_locally-slice.sh | 2 +- scripts/run_tests_locally.sh | 2 +- scripts/show_logs_automation.sh | 2 +- scripts/show_logs_bgp.sh | 2 +- scripts/show_logs_context.sh | 2 +- scripts/show_logs_device.sh | 2 +- scripts/show_logs_dlt_connector.sh | 2 +- scripts/show_logs_dlt_gateway.sh | 2 +- scripts/show_logs_e2eorchestrator.sh | 2 +- scripts/show_logs_forecaster.sh | 2 +- scripts/show_logs_l3-attack-mitigator.sh | 2 +- scripts/show_logs_l3-centralized-attack-detector.sh | 2 +- scripts/show_logs_load_generator.sh | 2 +- scripts/show_logs_monitoring.sh | 2 +- scripts/show_logs_nbi.sh | 2 +- scripts/show_logs_opticalcontroller.sh | 2 +- scripts/show_logs_pathcomp_backend.sh | 2 +- scripts/show_logs_pathcomp_frontend.sh | 2 +- scripts/show_logs_service.sh | 2 +- scripts/show_logs_slice.sh | 2 +- scripts/show_logs_webui.sh | 2 +- scripts/start_webui_dev_mode.sh | 2 +- scripts/wait_context_nats.sh | 2 +- src/__init__.py | 2 +- src/bgpls_speaker/.gitlab-ci.yml | 2 +- src/bgpls_speaker/Config.py | 2 +- src/bgpls_speaker/Dockerfile | 2 +- src/bgpls_speaker/__init__.py | 2 +- src/bgpls_speaker/client/BgplsClient.py | 2 +- src/bgpls_speaker/client/__init__.py | 2 +- src/bgpls_speaker/quick_deploy.sh | 2 +- src/bgpls_speaker/requirements.in | 2 +- src/bgpls_speaker/service/BgplsService.py | 2 +- src/bgpls_speaker/service/BgplsServiceServicerImpl.py | 2 +- src/bgpls_speaker/service/__init__.py | 2 +- src/bgpls_speaker/service/__main__.py | 2 +- src/bgpls_speaker/service/java/BGP4Parameters_3.xml | 2 +- src/bgpls_speaker/service/java/exec_speakear_java.sh | 2 +- .../service/java/netphony-topology/BGP4Parameters_3.xml | 2 +- src/bgpls_speaker/service/java/netphony-topology/CHANGELOG | 2 +- src/bgpls_speaker/service/java/netphony-topology/log4j2.xml | 2 +- src/bgpls_speaker/service/java/netphony-topology/pom.xml | 2 +- .../tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java | 2 +- .../eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java | 2 +- .../tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java | 2 +- .../tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java | 2 +- .../eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java | 2 +- .../eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java | 2 +- .../teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java | 2 +- .../src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java | 2 +- .../tid/bgp4Peer/management/BGP4ManagementServer.java | 2 +- .../tid/bgp4Peer/management/BGP4ManagementSession.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java | 2 +- .../eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java | 2 +- .../teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java | 2 +- .../teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java | 2 +- .../src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/peer/SendTopology.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java | 2 +- .../eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java | 2 +- .../main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java | 2 +- .../eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java | 2 +- .../java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java | 2 +- .../tid/bgp4Peer/updateTEDB/UpdateProccesorThread.java | 2 +- .../tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java | 2 +- .../eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/IT_Resources.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/InterDomainEdge.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/IntraDomainEdge.java | 2 +- .../main/java/eu/teraflow/tid/tedb/IntraDomainWeightEdge.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/Layer.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/MDTEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/Node_Info.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java | 2 +- .../main/java/eu/teraflow/tid/tedb/ReachabilityManager.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/SSONInformation.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/SSONListener.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/TEDB.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/TEDListener.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/TE_Information.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/WSONInformation.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/WSONListener.java | 2 +- .../teraflow/tid/tedb/controllers/TEDUpdaterController.java | 2 +- .../teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java | 2 +- .../java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java | 2 +- .../java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java | 2 +- .../java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java | 2 +- .../eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/BgpParams.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Intf.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/IsisParams.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Link.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Location.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Node.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/OspfParams.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Path.java | 2 +- .../java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java | 2 +- .../main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java | 2 +- .../src/main/java/eu/teraflow/tid/tedb/elements/Service.java | 2 +- .../eu/teraflow/tid/tedb/elements/StaticRoutingParams.java | 2 +- .../java/netphony-topology/src/main/proto/grpcService.proto | 2 +- .../main/sample-config-files/TM_COP_example1/TMConfCOP.xml | 2 +- .../src/main/sample-config-files/TM_COP_example1/network1.xml | 2 +- .../main/sample-config-files/TM_TAPI_example1/TMConfTAPI.xml | 2 +- .../main/sample-config-files/TM_TAPI_example1/network1.xml | 2 +- .../sample-config-files/bgpls_example1/BGP4Parameters_1.xml | 2 +- .../sample-config-files/bgpls_example1/BGP4Parameters_2.xml | 2 +- .../src/main/sample-config-files/bgpls_example1/network1.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/BGPLS1.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/BGPLS2.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/BGPLS3.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/TM1.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/TM2.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/TM3.xml | 2 +- .../conf1wayTest/TMConfiguration_BGPLSreader_UNIFYwriter.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/network1.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/network2.xml | 2 +- .../src/main/sample-config-files/conf1wayTest/network3.xml | 2 +- .../main/sample-config-files/conf2waysReal/BGPLS1_2way.xml | 2 +- .../main/sample-config-files/conf2waysReal/BGPLS2_2way.xml | 2 +- .../main/sample-config-files/conf2waysReal/BGPLS3_2way.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/README | 2 +- .../src/main/sample-config-files/conf2waysReal/TM1.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/TM2.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/TM3.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/network1.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/network2.xml | 2 +- .../src/main/sample-config-files/conf2waysReal/network3.xml | 2 +- .../src/main/sample-config-files/examples/BGP4Parameters.xml | 2 +- .../main/sample-config-files/examples/BGP4ParametersRX.xml | 2 +- .../main/sample-config-files/examples/BGP4ParametersTX.xml | 2 +- .../main/sample-config-files/examples/BGP4ParametersTXRX.xml | 2 +- .../main/sample-config-files/examples/BGP4Parameters_1.xml | 2 +- .../main/sample-config-files/examples/BGP4Parameters_1_IT.xml | 2 +- .../main/sample-config-files/examples/BGP4Parameters_2.xml | 2 +- .../main/sample-config-files/examples/BGP4Parameters_PCE.xml | 2 +- .../main/sample-config-files/examples/BGP4Parameters_TM.xml | 2 +- .../main/sample-config-files/examples/EmulatedTopology.xml | 2 +- .../sample-config-files/examples/EmulatedTopologyECOC.xml | 2 +- .../src/main/sample-config-files/examples/TMConfiguration.xml | 2 +- .../main/sample-config-files/examples/TMConfiguration2.xml | 2 +- .../main/sample-config-files/examples/TMConfigurationCOP.xml | 2 +- .../examples/TMConfiguration_BGPLSreader_COPwriter.xml | 2 +- .../examples/TMConfiguration_BGPLSreader_IETFwriter.xml | 2 +- .../examples/TMConfiguration_BGPLSreader_UNIFYwriter.xml | 2 +- .../examples/TMConfiguration_COPreader_BGPLSsender.xml | 2 +- .../examples/TMConfiguration_COPsender.xml | 2 +- .../src/main/sample-config-files/examples/log4j2.xml | 2 +- .../src/main/sample-config-files/examples/network1_pce.xml | 2 +- .../src/main/sample-config-files/examples/total.xml | 2 +- .../src/main/sample-config-files/examples/total101.xml | 2 +- .../src/main/sample-config-files/examples/total10v2.xml | 2 +- .../src/test/java/es/tid/bgp/bgp4Peer/tests/BGP4PeerTest.java | 2 +- .../netphony-topology/src/test/resources/BGP4Parameters_1.xml | 2 +- .../src/test/resources/BGP4Parameters_1_IT.xml | 2 +- .../netphony-topology/src/test/resources/BGP4Parameters_2.xml | 2 +- .../netphony-topology/src/test/resources/EmulatedTopology.xml | 2 +- .../src/test/resources/EmulatedTopologyECOC.xml | 2 +- .../java/netphony-topology/src/test/resources/log4j2.xml | 2 +- .../java/netphony-topology/src/test/resources/network1.xml | 2 +- .../protobuf/grpc-java/src/main/proto/updateServiceGrpc.java | 2 +- src/bgpls_speaker/service/java/netphony-topology/topology.iml | 2 +- src/bgpls_speaker/service/tools/DiscoveredDBManager.py | 2 +- src/bgpls_speaker/service/tools/GrpcServer.py | 2 +- src/bgpls_speaker/service/tools/JavaRunner.py | 2 +- src/bgpls_speaker/service/tools/Tools.py | 2 +- src/bgpls_speaker/service/tools/__init__.py | 2 +- src/bgpls_speaker/service/tools/json_loader.py | 2 +- src/bgpls_speaker/service/tools/protos/grpcService.proto | 2 +- src/bgpls_speaker/tests/__init__.py | 2 +- src/bgpls_speaker/tests/test_unitary.py | 2 +- src/common/Constants.py | 2 +- src/common/DeviceTypes.py | 2 +- src/common/Settings.py | 2 +- src/common/__init__.py | 2 +- src/common/logger.py | 2 +- src/common/message_broker/Constants.py | 2 +- src/common/message_broker/Factory.py | 2 +- src/common/message_broker/Message.py | 2 +- src/common/message_broker/MessageBroker.py | 2 +- src/common/message_broker/__init__.py | 2 +- src/common/message_broker/backend/BackendEnum.py | 2 +- src/common/message_broker/backend/_Backend.py | 2 +- src/common/message_broker/backend/__init__.py | 2 +- src/common/message_broker/backend/inmemory/InMemoryBackend.py | 2 +- src/common/message_broker/backend/inmemory/__init__.py | 2 +- src/common/message_broker/backend/nats/NatsBackend.py | 2 +- src/common/message_broker/backend/nats/NatsBackendThread.py | 2 +- src/common/message_broker/backend/nats/__init__.py | 2 +- src/common/message_broker/backend/redis/RedisBackend.py | 2 +- src/common/message_broker/backend/redis/__init__.py | 2 +- src/common/message_broker/tests/__init__.py | 2 +- src/common/message_broker/tests/test_unitary.py | 2 +- src/common/method_wrappers/Decorator.py | 2 +- src/common/method_wrappers/ServiceExceptions.py | 2 +- src/common/method_wrappers/__init__.py | 2 +- src/common/method_wrappers/tests/DummyDeviceDriver.py | 2 +- src/common/method_wrappers/tests/__init__.py | 2 +- src/common/method_wrappers/tests/__main__.py | 2 +- src/common/method_wrappers/tests/deploy_specs.sh | 2 +- src/common/method_wrappers/tests/old/docker_grafana.sh | 2 +- src/common/method_wrappers/tests/old/prometheus.yml | 2 +- src/common/method_wrappers/tests/test_unitary.py | 2 +- src/common/tests/EventTools.py | 2 +- src/common/tests/InMemoryObjectDatabase.py | 2 +- src/common/tests/InMemoryTimeSeriesDatabase.py | 2 +- src/common/tests/MockMessageBroker.py | 2 +- src/common/tests/MockServicerImpl_Context.py | 2 +- src/common/tests/MockServicerImpl_Device.py | 2 +- src/common/tests/MockServicerImpl_DltGateway.py | 2 +- src/common/tests/MockServicerImpl_Monitoring.py | 2 +- src/common/tests/MockServicerImpl_Service.py | 2 +- src/common/tests/MockServicerImpl_Slice.py | 2 +- src/common/tests/PytestGenerateTests.py | 2 +- src/common/tests/__init__.py | 2 +- src/common/tools/__init__.py | 2 +- src/common/tools/client/RetryDecorator.py | 2 +- src/common/tools/client/__init__.py | 2 +- src/common/tools/context_queries/CheckType.py | 2 +- src/common/tools/context_queries/Connection.py | 2 +- src/common/tools/context_queries/Context.py | 2 +- src/common/tools/context_queries/Device.py | 2 +- src/common/tools/context_queries/EndPoint.py | 2 +- src/common/tools/context_queries/InterDomain.py | 2 +- src/common/tools/context_queries/InterDomain_old.py | 2 +- src/common/tools/context_queries/Link.py | 2 +- src/common/tools/context_queries/Service.py | 2 +- src/common/tools/context_queries/Slice.py | 2 +- src/common/tools/context_queries/Topology.py | 2 +- src/common/tools/context_queries/__init__.py | 2 +- src/common/tools/descriptor/Loader.py | 2 +- src/common/tools/descriptor/Tools.py | 2 +- src/common/tools/descriptor/__init__.py | 2 +- src/common/tools/descriptor/old/BuildDescriptors.py | 2 +- src/common/tools/descriptor/old/LoadDescriptors.py | 2 +- src/common/tools/grpc/ConfigRules.py | 2 +- src/common/tools/grpc/Constraints.py | 2 +- src/common/tools/grpc/EndPointIds.py | 2 +- src/common/tools/grpc/ServiceIds.py | 2 +- src/common/tools/grpc/Tools.py | 2 +- src/common/tools/grpc/__init__.py | 2 +- src/common/tools/mutex_queues/MutexQueues.py | 2 +- src/common/tools/mutex_queues/__init__.py | 2 +- src/common/tools/object_factory/ConfigRule.py | 2 +- src/common/tools/object_factory/Connection.py | 2 +- src/common/tools/object_factory/Constraint.py | 2 +- src/common/tools/object_factory/Context.py | 2 +- src/common/tools/object_factory/Device.py | 2 +- src/common/tools/object_factory/EndPoint.py | 2 +- src/common/tools/object_factory/Link.py | 2 +- src/common/tools/object_factory/Location.py | 2 +- src/common/tools/object_factory/PolicyRule.py | 2 +- src/common/tools/object_factory/Service.py | 2 +- src/common/tools/object_factory/Slice.py | 2 +- src/common/tools/object_factory/Topology.py | 2 +- src/common/tools/object_factory/__init__.py | 2 +- src/common/tools/service/GenericGrpcService.py | 2 +- src/common/tools/service/GenericRestServer.py | 2 +- src/common/tools/service/__init__.py | 2 +- src/common/tools/timestamp/Converters.py | 2 +- src/common/tools/timestamp/__init__.py | 2 +- src/common/type_checkers/Assertions.py | 2 +- src/common/type_checkers/Checkers.py | 2 +- src/common/type_checkers/__init__.py | 2 +- src/context/.gitlab-ci.yml | 2 +- src/context/Config.py | 2 +- src/context/Dockerfile | 2 +- src/context/__init__.py | 2 +- src/context/client/ContextClient.py | 2 +- src/context/client/EventsCollector.py | 2 +- src/context/client/__init__.py | 2 +- src/context/data/cleanup_commands.sql | 2 +- src/context/requirements.in | 2 +- src/context/service/ContextService.py | 2 +- src/context/service/ContextServiceServicerImpl.py | 2 +- src/context/service/__init__.py | 2 +- src/context/service/__main__.py | 2 +- src/context/service/database/Component.py | 2 +- src/context/service/database/ConfigRule.py | 2 +- src/context/service/database/Connection.py | 2 +- src/context/service/database/Constraint.py | 2 +- src/context/service/database/Context.py | 2 +- src/context/service/database/Device.py | 2 +- src/context/service/database/EndPoint.py | 2 +- src/context/service/database/Engine.py | 2 +- src/context/service/database/Events.py | 2 +- src/context/service/database/Link.py | 2 +- src/context/service/database/OpticalConfig.py | 2 +- src/context/service/database/PolicyRule.py | 2 +- src/context/service/database/Service.py | 2 +- src/context/service/database/Slice.py | 2 +- src/context/service/database/Topology.py | 2 +- src/context/service/database/__init__.py | 2 +- src/context/service/database/models/ComponentModel.py | 2 +- src/context/service/database/models/ConfigRuleModel.py | 2 +- src/context/service/database/models/ConnectionModel.py | 2 +- src/context/service/database/models/ConstraintModel.py | 2 +- src/context/service/database/models/ContextModel.py | 2 +- src/context/service/database/models/DeviceModel.py | 2 +- src/context/service/database/models/EndPointModel.py | 2 +- src/context/service/database/models/LinkModel.py | 2 +- src/context/service/database/models/OpticalConfigModel.py | 2 +- src/context/service/database/models/PolicyRuleModel.py | 2 +- src/context/service/database/models/ServiceModel.py | 2 +- src/context/service/database/models/SliceModel.py | 2 +- src/context/service/database/models/TopologyModel.py | 2 +- src/context/service/database/models/_Base.py | 2 +- src/context/service/database/models/__init__.py | 2 +- src/context/service/database/models/enums/ConfigAction.py | 2 +- src/context/service/database/models/enums/ConstraintAction.py | 2 +- src/context/service/database/models/enums/DeviceDriver.py | 2 +- .../service/database/models/enums/DeviceOperationalStatus.py | 2 +- src/context/service/database/models/enums/KpiSampleType.py | 2 +- src/context/service/database/models/enums/PolicyRuleState.py | 2 +- src/context/service/database/models/enums/ServiceStatus.py | 2 +- src/context/service/database/models/enums/ServiceType.py | 2 +- src/context/service/database/models/enums/SliceStatus.py | 2 +- src/context/service/database/models/enums/_GrpcToEnum.py | 2 +- src/context/service/database/models/enums/__init__.py | 2 +- src/context/service/database/tools/FastHasher.py | 2 +- src/context/service/database/tools/__init__.py | 2 +- src/context/service/database/uuids/Connection.py | 2 +- src/context/service/database/uuids/Context.py | 2 +- src/context/service/database/uuids/Device.py | 2 +- src/context/service/database/uuids/EndPoint.py | 2 +- src/context/service/database/uuids/Link.py | 2 +- src/context/service/database/uuids/PolicuRule.py | 2 +- src/context/service/database/uuids/Service.py | 2 +- src/context/service/database/uuids/Slice.py | 2 +- src/context/service/database/uuids/Topology.py | 2 +- src/context/service/database/uuids/_Builder.py | 2 +- src/context/service/database/uuids/__init__.py | 2 +- src/context/tests/Constants.py | 2 +- src/context/tests/Objects.py | 2 +- src/context/tests/__init__.py | 2 +- src/context/tests/conftest.py | 2 +- src/context/tests/test_connection.py | 2 +- src/context/tests/test_context.py | 2 +- src/context/tests/test_device.py | 2 +- src/context/tests/test_hasher.py | 2 +- src/context/tests/test_link.py | 2 +- src/context/tests/test_policy.py | 2 +- src/context/tests/test_service.py | 2 +- src/context/tests/test_slice.py | 2 +- src/context/tests/test_topology.py | 2 +- src/dbscanserving/.gitlab-ci.yml | 2 +- src/dbscanserving/Config.py | 2 +- src/dbscanserving/Dockerfile | 2 +- src/dbscanserving/__init__.py | 2 +- src/dbscanserving/client/DbscanServingClient.py | 2 +- src/dbscanserving/client/__init__.py | 2 +- src/dbscanserving/requirements.in | 2 +- src/dbscanserving/service/DbscanService.py | 2 +- src/dbscanserving/service/DbscanServiceServicerImpl.py | 2 +- src/dbscanserving/service/__init__.py | 2 +- src/dbscanserving/service/__main__.py | 2 +- src/dbscanserving/tests/__init__.py | 2 +- src/dbscanserving/tests/test_unitary.py | 2 +- src/device/.gitlab-ci.yml | 2 +- src/device/Config.py | 2 +- src/device/Dockerfile | 2 +- src/device/__init__.py | 2 +- src/device/client/DeviceClient.py | 2 +- src/device/client/__init__.py | 2 +- src/device/requirements.in | 2 +- src/device/service/DeviceService.py | 2 +- src/device/service/DeviceServiceServicerImpl.py | 2 +- src/device/service/ErrorMessages.py | 2 +- src/device/service/OpenConfigServicer.py | 2 +- src/device/service/Tools.py | 2 +- src/device/service/__init__.py | 2 +- src/device/service/__main__.py | 2 +- src/device/service/driver_api/AnyTreeTools.py | 2 +- src/device/service/driver_api/DriverFactory.py | 2 +- src/device/service/driver_api/DriverInstanceCache.py | 2 +- src/device/service/driver_api/Exceptions.py | 2 +- src/device/service/driver_api/FilterFields.py | 2 +- src/device/service/driver_api/ImportTopologyEnum.py | 2 +- src/device/service/driver_api/_Driver.py | 2 +- src/device/service/driver_api/__init__.py | 2 +- src/device/service/drivers/__init__.py | 2 +- src/device/service/drivers/emulated/Constants.py | 2 +- src/device/service/drivers/emulated/EmulatedDriver.py | 2 +- .../service/drivers/emulated/SyntheticSamplingParameters.py | 2 +- src/device/service/drivers/emulated/Tools.py | 2 +- src/device/service/drivers/emulated/__init__.py | 2 +- .../service/drivers/gnmi_openconfig/DeltaSampleCache.py | 2 +- .../service/drivers/gnmi_openconfig/GnmiOpenConfigDriver.py | 2 +- .../service/drivers/gnmi_openconfig/GnmiSessionHandler.py | 2 +- .../service/drivers/gnmi_openconfig/MonitoringThread.py | 2 +- src/device/service/drivers/gnmi_openconfig/__init__.py | 2 +- src/device/service/drivers/gnmi_openconfig/gnmi/__init__.py | 2 +- .../service/drivers/gnmi_openconfig/handlers/Component.py | 2 +- .../service/drivers/gnmi_openconfig/handlers/Interface.py | 2 +- .../drivers/gnmi_openconfig/handlers/InterfaceCounter.py | 2 +- .../drivers/gnmi_openconfig/handlers/NetworkInstance.py | 2 +- .../gnmi_openconfig/handlers/NetworkInstanceInterface.py | 2 +- .../gnmi_openconfig/handlers/NetworkInstanceStaticRoute.py | 2 +- src/device/service/drivers/gnmi_openconfig/handlers/Tools.py | 2 +- .../service/drivers/gnmi_openconfig/handlers/_Handler.py | 2 +- .../service/drivers/gnmi_openconfig/handlers/__init__.py | 2 +- .../drivers/gnmi_openconfig/handlers/old_bgp_handler.txt | 2 +- .../service/drivers/gnmi_openconfig/tools/Capabilities.py | 2 +- src/device/service/drivers/gnmi_openconfig/tools/Channel.py | 2 +- src/device/service/drivers/gnmi_openconfig/tools/Path.py | 2 +- .../service/drivers/gnmi_openconfig/tools/Subscriptions.py | 2 +- src/device/service/drivers/gnmi_openconfig/tools/Value.py | 2 +- src/device/service/drivers/gnmi_openconfig/tools/__init__.py | 2 +- src/device/service/drivers/ietf_actn/IetfActnDriver.py | 2 +- src/device/service/drivers/ietf_actn/Tools.py | 2 +- src/device/service/drivers/ietf_actn/__init__.py | 2 +- .../service/drivers/ietf_actn/handlers/EthtServiceHandler.py | 2 +- .../service/drivers/ietf_actn/handlers/OsuTunnelHandler.py | 2 +- .../service/drivers/ietf_actn/handlers/RestApiClient.py | 2 +- src/device/service/drivers/ietf_actn/handlers/__init__.py | 2 +- src/device/service/drivers/ietf_l2vpn/IetfL2VpnDriver.py | 2 +- src/device/service/drivers/ietf_l2vpn/TfsApiClient.py | 2 +- src/device/service/drivers/ietf_l2vpn/Tools.py | 2 +- src/device/service/drivers/ietf_l2vpn/__init__.py | 2 +- src/device/service/drivers/microwave/IETFApiDriver.py | 2 +- src/device/service/drivers/microwave/Tools.py | 2 +- src/device/service/drivers/microwave/__init__.py | 2 +- src/device/service/drivers/oc_driver/OCDriver.py | 2 +- src/device/service/drivers/oc_driver/RetryDecorator.py | 2 +- src/device/service/drivers/oc_driver/Tools.py | 2 +- src/device/service/drivers/oc_driver/__init__.py | 2 +- .../drivers/oc_driver/templates/Interfaces/__init__.py | 2 +- .../drivers/oc_driver/templates/Interfaces/interfaces.py | 2 +- src/device/service/drivers/oc_driver/templates/Tools.py | 2 +- .../service/drivers/oc_driver/templates/VPN/__init__.py | 2 +- .../service/drivers/oc_driver/templates/VPN/physical.py | 2 +- src/device/service/drivers/oc_driver/templates/__init__.py | 2 +- src/device/service/drivers/openconfig/OpenConfigDriver.py | 2 +- src/device/service/drivers/openconfig/RetryDecorator.py | 2 +- src/device/service/drivers/openconfig/Tools.py | 2 +- src/device/service/drivers/openconfig/__init__.py | 2 +- .../drivers/openconfig/templates/ACL/ACL_multivendor.py | 2 +- .../service/drivers/openconfig/templates/ACL/__init__.py | 2 +- src/device/service/drivers/openconfig/templates/Acl.py | 2 +- src/device/service/drivers/openconfig/templates/EndPoints.py | 2 +- src/device/service/drivers/openconfig/templates/Interfaces.py | 2 +- src/device/service/drivers/openconfig/templates/Inventory.py | 2 +- src/device/service/drivers/openconfig/templates/Namespace.py | 2 +- .../service/drivers/openconfig/templates/NetworkInstances.py | 2 +- .../service/drivers/openconfig/templates/RoutingPolicy.py | 2 +- src/device/service/drivers/openconfig/templates/Tools.py | 2 +- .../openconfig/templates/VPN/Interfaces_multivendor.py | 2 +- .../openconfig/templates/VPN/Network_instance_multivendor.py | 2 +- .../drivers/openconfig/templates/VPN/Routing_policy.py | 2 +- .../service/drivers/openconfig/templates/VPN/__init__.py | 2 +- src/device/service/drivers/openconfig/templates/__init__.py | 2 +- src/device/service/drivers/optical_tfs/OpticalTfsDriver.py | 2 +- src/device/service/drivers/optical_tfs/Tools.py | 2 +- src/device/service/drivers/optical_tfs/__init__.py | 2 +- src/device/service/drivers/p4/__init__.py | 2 +- src/device/service/drivers/p4/p4_client.py | 2 +- src/device/service/drivers/p4/p4_common.py | 2 +- src/device/service/drivers/p4/p4_context.py | 2 +- src/device/service/drivers/p4/p4_driver.py | 2 +- src/device/service/drivers/p4/p4_exception.py | 2 +- src/device/service/drivers/p4/p4_global_options.py | 2 +- src/device/service/drivers/p4/p4_manager.py | 2 +- src/device/service/drivers/transport_api/Tools.py | 2 +- .../service/drivers/transport_api/TransportApiDriver.py | 2 +- src/device/service/drivers/transport_api/__init__.py | 2 +- src/device/service/drivers/xr/XrDriver.py | 2 +- src/device/service/drivers/xr/__init__.py | 2 +- src/device/service/drivers/xr/cm-cli.py | 2 +- src/device/service/drivers/xr/cm/__init__.py | 2 +- src/device/service/drivers/xr/cm/cm_connection.py | 2 +- src/device/service/drivers/xr/cm/connection.py | 2 +- src/device/service/drivers/xr/cm/constellation.py | 2 +- src/device/service/drivers/xr/cm/tests/__init__.py | 2 +- src/device/service/drivers/xr/cm/tests/test_cm_connection.py | 2 +- src/device/service/drivers/xr/cm/tests/test_connection.py | 2 +- src/device/service/drivers/xr/cm/tests/test_constellation.py | 2 +- .../service/drivers/xr/cm/tests/test_transport_capacitity.py | 2 +- .../service/drivers/xr/cm/tests/test_xr_service_set_config.py | 2 +- src/device/service/drivers/xr/cm/tf.py | 2 +- src/device/service/drivers/xr/cm/tf_service.py | 2 +- src/device/service/drivers/xr/cm/transport_capacity.py | 2 +- src/device/service/drivers/xr/cm/utils.py | 2 +- src/device/service/drivers/xr/service-cli.py | 2 +- src/device/service/drivers/xr/setup_test_env.sh | 2 +- src/device/service/monitoring/MonitoringLoop.py | 2 +- src/device/service/monitoring/MonitoringLoops.py | 2 +- src/device/service/monitoring/__init__.py | 2 +- src/device/tests/CommonObjects.py | 2 +- src/device/tests/Device_Emulated.py | 2 +- src/device/tests/Device_Microwave_Template.py | 2 +- src/device/tests/Device_OpenConfig_Template.py | 2 +- src/device/tests/Device_Transport_Api_Template.py | 2 +- src/device/tests/MockService_Dependencies.py | 2 +- src/device/tests/PrepareTestScenario.py | 2 +- src/device/tests/__init__.py | 2 +- src/device/tests/device_p4.py | 2 +- src/device/tests/mock_p4runtime_service.py | 2 +- src/device/tests/mock_p4runtime_servicer_impl.py | 2 +- src/device/tests/test_gnmi.py | 2 +- src/device/tests/test_internal_p4.py | 2 +- src/device/tests/test_netconf.py | 2 +- src/device/tests/test_unitary_emulated.py | 2 +- src/device/tests/test_unitary_ietf_actn.py | 2 +- src/device/tests/test_unitary_microwave.py | 2 +- src/device/tests/test_unitary_openconfig.py | 2 +- src/device/tests/test_unitary_p4.py | 2 +- src/device/tests/test_unitary_tapi.py | 2 +- src/dlt/.gitlab-ci.yml | 2 +- src/dlt/__init__.py | 2 +- src/dlt/connector/Config.py | 2 +- src/dlt/connector/Dockerfile | 2 +- src/dlt/connector/__init__.py | 2 +- src/dlt/connector/client/DltConnectorClient.py | 2 +- src/dlt/connector/client/DltEventsCollector.py | 2 +- src/dlt/connector/client/DltGatewayClient.py | 2 +- src/dlt/connector/client/__init__.py | 2 +- src/dlt/connector/requirements.in | 2 +- src/dlt/connector/service/DltConnectorService.py | 2 +- src/dlt/connector/service/DltConnectorServiceServicerImpl.py | 2 +- src/dlt/connector/service/__init__.py | 2 +- src/dlt/connector/service/__main__.py | 2 +- .../connector/service/event_dispatcher/DltEventDispatcher.py | 2 +- src/dlt/connector/service/event_dispatcher/__init__.py | 2 +- src/dlt/connector/service/tools/Checkers.py | 2 +- src/dlt/connector/service/tools/__init__.py | 2 +- src/dlt/connector/tests/MockService_Dependencies.py | 2 +- src/dlt/connector/tests/Objects.py | 2 +- src/dlt/connector/tests/PrepareTestScenario.py | 2 +- src/dlt/connector/tests/__init__.py | 2 +- src/dlt/connector/tests/basic.py | 2 +- src/dlt/connector/tests/test_unitary.py | 2 +- src/dlt/gateway/Dockerfile | 2 +- src/dlt/mock_blockchain/Dockerfile | 2 +- src/dlt/mock_blockchain/__init__.py | 2 +- src/dlt/mock_blockchain/requirements.in | 2 +- src/dlt/mock_blockchain/service/__init__.py | 2 +- src/dlt/mock_blockchain/service/__main__.py | 2 +- src/dlt/performance/__init__.py | 2 +- src/dlt/performance/__main__.py | 2 +- src/dlt/performance/play_ground/Dlt.py | 2 +- src/dlt/performance/play_ground/Enums.py | 2 +- src/dlt/performance/play_ground/PerfData.py | 2 +- src/dlt/performance/play_ground/PerfPoint.py | 2 +- src/dlt/performance/play_ground/Random.py | 2 +- src/dlt/performance/play_ground/Settings.py | 2 +- src/dlt/performance/play_ground/__init__.py | 2 +- src/dlt/performance/run_test.sh | 2 +- src/e2e_orchestrator/.gitlab-ci.yml | 2 +- src/e2e_orchestrator/Config.py | 2 +- src/e2e_orchestrator/Dockerfile | 2 +- src/e2e_orchestrator/__init__.py | 2 +- src/e2e_orchestrator/client/E2EOrchestratorClient.py | 2 +- src/e2e_orchestrator/client/__init__.py | 2 +- src/e2e_orchestrator/requirements.in | 2 +- src/e2e_orchestrator/service/E2EOrchestratorService.py | 2 +- .../service/E2EOrchestratorServiceServicerImpl.py | 2 +- src/e2e_orchestrator/service/__init__.py | 2 +- src/e2e_orchestrator/service/__main__.py | 2 +- src/e2e_orchestrator/tests/__init__.py | 2 +- src/e2e_orchestrator/tests/deploy_specs.sh | 2 +- src/e2e_orchestrator/tests/functional_tests/Fixtures.py | 2 +- src/e2e_orchestrator/tests/functional_tests/Objects.py | 2 +- src/e2e_orchestrator/tests/functional_tests/__init__.py | 2 +- .../tests/functional_tests/test_functional_bootstrap.py | 2 +- .../tests/functional_tests/test_functional_cleanup.py | 2 +- .../tests/functional_tests/test_functional_compute_path.py | 2 +- src/e2e_orchestrator/tests/redeploy.sh | 2 +- src/e2e_orchestrator/tests/run_test_01_bootstrap.sh | 2 +- src/e2e_orchestrator/tests/run_test_02_compute_path.sh | 2 +- src/e2e_orchestrator/tests/run_test_03_cleanup.sh | 2 +- src/e2e_orchestrator/tests/run_tests.sh | 2 +- src/forecaster/.gitlab-ci.yml | 2 +- src/forecaster/Config.py | 2 +- src/forecaster/Dockerfile | 2 +- src/forecaster/__init__.py | 2 +- src/forecaster/client/ForecasterClient.py | 2 +- src/forecaster/client/__init__.py | 2 +- src/forecaster/requirements.in | 2 +- src/forecaster/service/Forecaster.py | 2 +- src/forecaster/service/ForecasterService.py | 2 +- src/forecaster/service/ForecasterServiceServicerImpl.py | 2 +- src/forecaster/service/KpiManager.py | 2 +- src/forecaster/service/__init__.py | 2 +- src/forecaster/service/__main__.py | 2 +- src/forecaster/tests/MockService_Dependencies.py | 2 +- src/forecaster/tests/PrepareTestScenario.py | 2 +- src/forecaster/tests/Tools.py | 2 +- src/forecaster/tests/__init__.py | 2 +- src/forecaster/tests/data/inject_samples.py | 2 +- src/forecaster/tests/test_unitary.py | 2 +- src/gitlab-ci.yml_generator.py | 2 +- src/interdomain/.gitlab-ci.yml | 2 +- src/interdomain/Config.py | 2 +- src/interdomain/Dockerfile | 2 +- src/interdomain/__init__.py | 2 +- src/interdomain/client/InterdomainClient.py | 2 +- src/interdomain/client/__init__.py | 2 +- src/interdomain/requirements.in | 2 +- src/interdomain/service/InterdomainService.py | 2 +- src/interdomain/service/InterdomainServiceServicerImpl.py | 2 +- src/interdomain/service/RemoteDomainClients.py | 2 +- src/interdomain/service/Tools.py | 2 +- src/interdomain/service/__init__.py | 2 +- src/interdomain/service/__main__.py | 2 +- .../service/_old_code/InterdomainServiceServicerImpl.py | 2 +- src/interdomain/service/topology_abstractor/AbstractDevice.py | 2 +- src/interdomain/service/topology_abstractor/AbstractLink.py | 2 +- .../service/topology_abstractor/DltRecordSender.py | 2 +- .../service/topology_abstractor/TopologyAbstractor.py | 2 +- src/interdomain/service/topology_abstractor/Types.py | 2 +- src/interdomain/service/topology_abstractor/__init__.py | 2 +- src/interdomain/tests/__init__.py | 2 +- src/interdomain/tests/old_tests.py | 2 +- src/interdomain/tests/test_compute_domains.py | 2 +- src/interdomain/tests/test_topology_abstractor.py | 2 +- src/l3_attackmitigator/.gitlab-ci.yml | 2 +- src/l3_attackmitigator/Config.py | 2 +- src/l3_attackmitigator/Dockerfile | 2 +- src/l3_attackmitigator/__init__.py | 2 +- src/l3_attackmitigator/client/__init__.py | 2 +- src/l3_attackmitigator/client/l3_attackmitigatorClient.py | 2 +- src/l3_attackmitigator/requirements.in | 2 +- src/l3_attackmitigator/service/__init__.py | 2 +- src/l3_attackmitigator/service/__main__.py | 2 +- src/l3_attackmitigator/service/l3_attackmitigatorService.py | 2 +- .../service/l3_attackmitigatorServiceServicerImpl.py | 2 +- src/l3_attackmitigator/tests/__init__.py | 2 +- src/l3_attackmitigator/tests/test_unitary.py | 2 +- src/l3_centralizedattackdetector/.gitlab-ci.yml | 2 +- src/l3_centralizedattackdetector/Config.py | 2 +- src/l3_centralizedattackdetector/Dockerfile | 2 +- src/l3_centralizedattackdetector/__init__.py | 2 +- src/l3_centralizedattackdetector/client/__init__.py | 2 +- .../client/l3_centralizedattackdetectorClient.py | 2 +- src/l3_centralizedattackdetector/requirements.in | 2 +- src/l3_centralizedattackdetector/service/__init__.py | 2 +- src/l3_centralizedattackdetector/service/__main__.py | 2 +- .../service/l3_centralizedattackdetectorService.py | 2 +- .../l3_centralizedattackdetectorServiceServicerImpl.py | 2 +- src/l3_centralizedattackdetector/tests/__init__.py | 2 +- src/l3_centralizedattackdetector/tests/test_unitary.py | 2 +- src/l3_distributedattackdetector/.gitlab-ci.yml | 2 +- src/l3_distributedattackdetector/Config.py | 2 +- src/l3_distributedattackdetector/Dockerfile | 2 +- src/l3_distributedattackdetector/__init__.py | 2 +- src/l3_distributedattackdetector/requirements.in | 2 +- src/l3_distributedattackdetector/service/__init__.py | 2 +- src/l3_distributedattackdetector/service/__main__.py | 2 +- .../service/l3_distributedattackdetector.py | 2 +- src/l3_distributedattackdetector/tests/__init__.py | 2 +- src/l3_distributedattackdetector/tests/data_generator.py | 2 +- src/l3_distributedattackdetector/tests/test_unitary.py | 2 +- src/load_generator/.gitlab-ci.yml | 2 +- src/load_generator/Config.py | 2 +- src/load_generator/Dockerfile | 2 +- src/load_generator/__init__.py | 2 +- src/load_generator/client/LoadGeneratorClient.py | 2 +- src/load_generator/client/__init__.py | 2 +- src/load_generator/command/__init__.py | 2 +- src/load_generator/command/__main__.py | 2 +- src/load_generator/load_gen/Constants.py | 2 +- src/load_generator/load_gen/DltTools.py | 2 +- src/load_generator/load_gen/Parameters.py | 2 +- src/load_generator/load_gen/RequestGenerator.py | 2 +- src/load_generator/load_gen/RequestScheduler.py | 2 +- src/load_generator/load_gen/__init__.py | 2 +- src/load_generator/requirements.in | 2 +- src/load_generator/run.sh | 2 +- src/load_generator/service/Constants.py | 2 +- src/load_generator/service/LoadGeneratorService.py | 2 +- .../service/LoadGeneratorServiceServicerImpl.py | 2 +- src/load_generator/service/__init__.py | 2 +- src/load_generator/service/__main__.py | 2 +- src/load_generator/tests/__init__.py | 2 +- src/load_generator/tests/deploy_specs.sh | 2 +- src/load_generator/tests/test_dlt_functional.py | 2 +- src/load_generator/tools/ListScalarRange.py | 2 +- src/load_generator/tools/__init__.py | 2 +- src/monitoring/.gitlab-ci.yml | 2 +- src/monitoring/Dockerfile | 2 +- src/monitoring/__init__.py | 2 +- src/monitoring/client/MonitoringClient.py | 2 +- src/monitoring/client/__init__.py | 2 +- src/monitoring/requirements.in | 2 +- src/monitoring/service/AlarmManager.py | 2 +- src/monitoring/service/EventTools.py | 2 +- src/monitoring/service/InfluxTools.py | 2 +- src/monitoring/service/ManagementDBTools.py | 2 +- src/monitoring/service/MetricsDBTools.py | 2 +- src/monitoring/service/MonitoringService.py | 2 +- src/monitoring/service/MonitoringServiceServicerImpl.py | 2 +- src/monitoring/service/NameMapping.py | 2 +- src/monitoring/service/SubscriptionManager.py | 2 +- src/monitoring/service/__init__.py | 2 +- src/monitoring/service/__main__.py | 2 +- src/monitoring/tests/Messages.py | 2 +- src/monitoring/tests/Objects.py | 2 +- src/monitoring/tests/__init__.py | 2 +- src/monitoring/tests/test_unitary.py | 2 +- src/nbi/.gitlab-ci.yml | 2 +- src/nbi/Config.py | 2 +- src/nbi/Dockerfile | 2 +- src/nbi/__init__.py | 2 +- src/nbi/client/NbiClient.py | 2 +- src/nbi/client/__init__.py | 2 +- src/nbi/requirements.in | 2 +- src/nbi/service/NbiService.py | 2 +- src/nbi/service/NbiServiceServicerImpl.py | 2 +- src/nbi/service/__init__.py | 2 +- src/nbi/service/__main__.py | 2 +- src/nbi/service/rest_server/RestServer.py | 2 +- src/nbi/service/rest_server/__init__.py | 2 +- src/nbi/service/rest_server/nbi_plugins/__init__.py | 2 +- src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Resources.py | 2 +- src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Tools.py | 2 +- src/nbi/service/rest_server/nbi_plugins/etsi_bwm/__init__.py | 2 +- .../service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py | 2 +- .../rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py | 2 +- .../rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py | 2 +- .../nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py | 2 +- .../service/rest_server/nbi_plugins/ietf_l2vpn/__init__.py | 2 +- .../rest_server/nbi_plugins/ietf_l2vpn/schemas/Common.py | 2 +- .../rest_server/nbi_plugins/ietf_l2vpn/schemas/__init__.py | 2 +- .../nbi_plugins/ietf_l2vpn/schemas/site_network_access.py | 2 +- .../rest_server/nbi_plugins/ietf_l2vpn/schemas/vpn_service.py | 2 +- .../service/rest_server/nbi_plugins/ietf_l3vpn/Handlers.py | 2 +- .../rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Service.py | 2 +- .../rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py | 2 +- .../nbi_plugins/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py | 2 +- .../rest_server/nbi_plugins/ietf_l3vpn/YangValidator.py | 2 +- .../service/rest_server/nbi_plugins/ietf_l3vpn/__init__.py | 2 +- .../rest_server/nbi_plugins/ietf_network/ComposeLink.py | 2 +- .../rest_server/nbi_plugins/ietf_network/ComposeNetwork.py | 2 +- .../rest_server/nbi_plugins/ietf_network/ComposeNode.py | 2 +- .../rest_server/nbi_plugins/ietf_network/ComposeTermPoint.py | 2 +- .../rest_server/nbi_plugins/ietf_network/ManualFixes.py | 2 +- .../rest_server/nbi_plugins/ietf_network/NameMapping.py | 2 +- .../rest_server/nbi_plugins/ietf_network/NetworkTypeEnum.py | 2 +- .../service/rest_server/nbi_plugins/ietf_network/Networks.py | 2 +- .../service/rest_server/nbi_plugins/ietf_network/__init__.py | 2 +- .../nbi_plugins/ietf_network/build-yang-bindings.sh | 2 +- .../rest_server/nbi_plugins/ietf_network_slice/NSS_Service.py | 2 +- .../nbi_plugins/ietf_network_slice/NSS_Services.py | 2 +- .../rest_server/nbi_plugins/ietf_network_slice/__init__.py | 2 +- .../nbi_plugins/ietf_network_slice/bindings/__init__.py | 2 +- .../nbi_plugins/ietf_network_slice/bindings/nacm/__init__.py | 2 +- .../ietf_network_slice/bindings/nacm/groups/__init__.py | 2 +- .../ietf_network_slice/bindings/nacm/groups/group/__init__.py | 2 +- .../ietf_network_slice/bindings/nacm/rule_list/__init__.py | 2 +- .../bindings/nacm/rule_list/rule/__init__.py | 2 +- .../bindings/nacm/rule_list/rule/rule_type/__init__.py | 2 +- .../nacm/rule_list/rule/rule_type/data_node/__init__.py | 2 +- .../nacm/rule_list/rule/rule_type/notification/__init__.py | 2 +- .../rule_list/rule/rule_type/protocol_operation/__init__.py | 2 +- .../bindings/network_slice_services/__init__.py | 2 +- .../bindings/network_slice_services/slice_service/__init__.py | 2 +- .../slice_service/connection_groups/__init__.py | 2 +- .../connection_groups/connection_group/__init__.py | 2 +- .../connection_group/connection_group_monitoring/__init__.py | 2 +- .../connection_group/connectivity_construct/__init__.py | 2 +- .../connectivity_construct_monitoring/__init__.py | 2 +- .../connectivity_construct_type/__init__.py | 2 +- .../connectivity_construct_type/a2a/__init__.py | 2 +- .../connectivity_construct_type/a2a/a2a_sdp/__init__.py | 2 +- .../a2a/a2a_sdp/slo_sle_policy/__init__.py | 2 +- .../a2a/a2a_sdp/slo_sle_policy/custom/__init__.py | 2 +- .../slo_sle_policy/custom/service_slo_sle_policy/__init__.py | 2 +- .../custom/service_slo_sle_policy/metric_bounds/__init__.py | 2 +- .../metric_bounds/metric_bound/__init__.py | 2 +- .../service_slo_sle_policy/steering_constraints/__init__.py | 2 +- .../steering_constraints/path_constraints/__init__.py | 2 +- .../steering_constraints/service_function/__init__.py | 2 +- .../a2a/a2a_sdp/slo_sle_policy/standard/__init__.py | 2 +- .../connectivity_construct_type/p2mp/__init__.py | 2 +- .../connectivity_construct_type/p2p/__init__.py | 2 +- .../connectivity_construct/slo_sle_policy/__init__.py | 2 +- .../connectivity_construct/slo_sle_policy/custom/__init__.py | 2 +- .../slo_sle_policy/custom/service_slo_sle_policy/__init__.py | 2 +- .../custom/service_slo_sle_policy/metric_bounds/__init__.py | 2 +- .../metric_bounds/metric_bound/__init__.py | 2 +- .../service_slo_sle_policy/steering_constraints/__init__.py | 2 +- .../steering_constraints/path_constraints/__init__.py | 2 +- .../steering_constraints/service_function/__init__.py | 2 +- .../slo_sle_policy/standard/__init__.py | 2 +- .../connection_group/slo_sle_policy/__init__.py | 2 +- .../connection_group/slo_sle_policy/custom/__init__.py | 2 +- .../slo_sle_policy/custom/service_slo_sle_policy/__init__.py | 2 +- .../custom/service_slo_sle_policy/metric_bounds/__init__.py | 2 +- .../metric_bounds/metric_bound/__init__.py | 2 +- .../service_slo_sle_policy/steering_constraints/__init__.py | 2 +- .../steering_constraints/path_constraints/__init__.py | 2 +- .../steering_constraints/service_function/__init__.py | 2 +- .../connection_group/slo_sle_policy/standard/__init__.py | 2 +- .../network_slice_services/slice_service/sdps/__init__.py | 2 +- .../network_slice_services/slice_service/sdps/sdp/__init__.py | 2 +- .../slice_service/sdps/sdp/attachment_circuits/__init__.py | 2 +- .../sdp/attachment_circuits/attachment_circuit/__init__.py | 2 +- .../attachment_circuit/ac_tags/__init__.py | 2 +- .../attachment_circuit/ac_tags/ac_tag_opaque/__init__.py | 2 +- .../attachment_circuit/ac_tags/ac_tags/__init__.py | 2 +- .../attachment_circuit/incoming_qos_policy/__init__.py | 2 +- .../incoming_qos_policy/rate_limits/__init__.py | 2 +- .../attachment_circuit/outgoing_qos_policy/__init__.py | 2 +- .../outgoing_qos_policy/rate_limits/__init__.py | 2 +- .../attachment_circuit/sdp_peering/__init__.py | 2 +- .../attachment_circuit/sdp_peering/opaque/__init__.py | 2 +- .../attachment_circuit/sdp_peering/protocol/__init__.py | 2 +- .../sdp_peering/protocol/attribute/__init__.py | 2 +- .../slice_service/sdps/sdp/incoming_qos_policy/__init__.py | 2 +- .../sdps/sdp/incoming_qos_policy/rate_limits/__init__.py | 2 +- .../slice_service/sdps/sdp/location/__init__.py | 2 +- .../slice_service/sdps/sdp/outgoing_qos_policy/__init__.py | 2 +- .../sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py | 2 +- .../slice_service/sdps/sdp/sdp_monitoring/__init__.py | 2 +- .../slice_service/sdps/sdp/sdp_peering/__init__.py | 2 +- .../slice_service/sdps/sdp/sdp_peering/opaque/__init__.py | 2 +- .../slice_service/sdps/sdp/sdp_peering/protocol/__init__.py | 2 +- .../sdps/sdp/sdp_peering/protocol/attribute/__init__.py | 2 +- .../slice_service/sdps/sdp/service_match_criteria/__init__.py | 2 +- .../sdp/service_match_criteria/match_criterion/__init__.py | 2 +- .../slice_service/sdps/sdp/status/__init__.py | 2 +- .../slice_service/sdps/sdp/status/admin_status/__init__.py | 2 +- .../slice_service/sdps/sdp/status/oper_status/__init__.py | 2 +- .../slice_service/service_tags/__init__.py | 2 +- .../slice_service/service_tags/tag_opaque/__init__.py | 2 +- .../slice_service/service_tags/tag_type/__init__.py | 2 +- .../slice_service/slo_sle_policy/__init__.py | 2 +- .../slice_service/slo_sle_policy/custom/__init__.py | 2 +- .../slo_sle_policy/custom/service_slo_sle_policy/__init__.py | 2 +- .../custom/service_slo_sle_policy/metric_bounds/__init__.py | 2 +- .../metric_bounds/metric_bound/__init__.py | 2 +- .../service_slo_sle_policy/steering_constraints/__init__.py | 2 +- .../steering_constraints/path_constraints/__init__.py | 2 +- .../steering_constraints/service_function/__init__.py | 2 +- .../slice_service/slo_sle_policy/standard/__init__.py | 2 +- .../network_slice_services/slice_service/status/__init__.py | 2 +- .../slice_service/status/admin_status/__init__.py | 2 +- .../slice_service/status/oper_status/__init__.py | 2 +- .../slice_service/te_topology_identifier/__init__.py | 2 +- .../network_slice_services/slo_sle_templates/__init__.py | 2 +- .../slo_sle_templates/slo_sle_template/__init__.py | 2 +- .../slo_sle_template/service_slo_sle_policy/__init__.py | 2 +- .../service_slo_sle_policy/metric_bounds/__init__.py | 2 +- .../metric_bounds/metric_bound/__init__.py | 2 +- .../service_slo_sle_policy/steering_constraints/__init__.py | 2 +- .../steering_constraints/path_constraints/__init__.py | 2 +- .../steering_constraints/service_function/__init__.py | 2 +- .../ietf_network_slice/bindings/networks/__init__.py | 2 +- .../ietf_network_slice/bindings/networks/network/__init__.py | 2 +- .../bindings/networks/network/link/__init__.py | 2 +- .../bindings/networks/network/link/destination/__init__.py | 2 +- .../bindings/networks/network/link/source/__init__.py | 2 +- .../networks/network/link/supporting_link/__init__.py | 2 +- .../bindings/networks/network/link/te/__init__.py | 2 +- .../networks/network/link/te/bundle_stack_level/__init__.py | 2 +- .../network/link/te/bundle_stack_level/bundle/__init__.py | 2 +- .../te/bundle_stack_level/bundle/bundled_links/__init__.py | 2 +- .../bundle/bundled_links/bundled_link/__init__.py | 2 +- .../network/link/te/bundle_stack_level/component/__init__.py | 2 +- .../bundle_stack_level/component/component_links/__init__.py | 2 +- .../component/component_links/component_link/__init__.py | 2 +- .../network/link/te/information_source_entry/__init__.py | 2 +- .../information_source_state/__init__.py | 2 +- .../information_source_state/topology/__init__.py | 2 +- .../interface_switching_capability/__init__.py | 2 +- .../max_lsp_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../information_source_entry/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../information_source_entry/max_link_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../max_resv_link_bandwidth/__init__.py | 2 +- .../max_resv_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../link/te/information_source_entry/te_nsrlgs/__init__.py | 2 +- .../link/te/information_source_entry/te_srlgs/__init__.py | 2 +- .../information_source_entry/unreserved_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../network/link/te/information_source_state/__init__.py | 2 +- .../link/te/information_source_state/topology/__init__.py | 2 +- .../bindings/networks/network/link/te/recovery/__init__.py | 2 +- .../bindings/networks/network/link/te/statistics/__init__.py | 2 +- .../networks/network/link/te/te_link_attributes/__init__.py | 2 +- .../link/te/te_link_attributes/external_domain/__init__.py | 2 +- .../interface_switching_capability/__init__.py | 2 +- .../max_lsp_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../link/te/te_link_attributes/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../link/te/te_link_attributes/max_link_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../te/te_link_attributes/max_resv_link_bandwidth/__init__.py | 2 +- .../max_resv_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../network/link/te/te_link_attributes/te_nsrlgs/__init__.py | 2 +- .../network/link/te/te_link_attributes/te_srlgs/__init__.py | 2 +- .../network/link/te/te_link_attributes/underlay/__init__.py | 2 +- .../te/te_link_attributes/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../te/te_link_attributes/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../link/te/te_link_attributes/underlay/tunnels/__init__.py | 2 +- .../te/te_link_attributes/underlay/tunnels/tunnel/__init__.py | 2 +- .../te/te_link_attributes/unreserved_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../bindings/networks/network/link/te/underlay/__init__.py | 2 +- .../bindings/networks/network/network_types/__init__.py | 2 +- .../networks/network/network_types/te_topology/__init__.py | 2 +- .../bindings/networks/network/node/__init__.py | 2 +- .../networks/network/node/supporting_node/__init__.py | 2 +- .../bindings/networks/network/node/te/__init__.py | 2 +- .../bindings/networks/network/node/te/geolocation/__init__.py | 2 +- .../network/node/te/information_source_entry/__init__.py | 2 +- .../connectivity_matrices/__init__.py | 2 +- .../connectivity_matrices/connectivity_matrix/__init__.py | 2 +- .../connectivity_matrix/from/__init__.py | 2 +- .../connectivity_matrix/from/label_restrictions/__init__.py | 2 +- .../from/label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrix/optimizations/__init__.py | 2 +- .../connectivity_matrix/optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../connectivity_matrix/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../connectivity_matrix/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../connectivity_matrices/connectivity_matrix/to/__init__.py | 2 +- .../connectivity_matrix/to/label_restrictions/__init__.py | 2 +- .../to/label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrix/underlay/__init__.py | 2 +- .../connectivity_matrix/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../connectivity_matrix/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../connectivity_matrix/underlay/tunnels/__init__.py | 2 +- .../connectivity_matrix/underlay/tunnels/tunnel/__init__.py | 2 +- .../connectivity_matrices/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrices/optimizations/__init__.py | 2 +- .../connectivity_matrices/optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../connectivity_matrices/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../connectivity_matrices/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../connectivity_matrices/underlay/__init__.py | 2 +- .../connectivity_matrices/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../connectivity_matrices/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../connectivity_matrices/underlay/tunnels/__init__.py | 2 +- .../connectivity_matrices/underlay/tunnels/tunnel/__init__.py | 2 +- .../information_source_state/__init__.py | 2 +- .../information_source_state/topology/__init__.py | 2 +- .../te/information_source_entry/underlay_topology/__init__.py | 2 +- .../network/node/te/information_source_state/__init__.py | 2 +- .../node/te/information_source_state/topology/__init__.py | 2 +- .../bindings/networks/network/node/te/statistics/__init__.py | 2 +- .../node/te/statistics/connectivity_matrix_entry/__init__.py | 2 +- .../networks/network/node/te/statistics/node/__init__.py | 2 +- .../networks/network/node/te/te_node_attributes/__init__.py | 2 +- .../te/te_node_attributes/connectivity_matrices/__init__.py | 2 +- .../connectivity_matrices/connectivity_matrix/__init__.py | 2 +- .../connectivity_matrix/from/__init__.py | 2 +- .../connectivity_matrix/from/label_restrictions/__init__.py | 2 +- .../from/label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrix/optimizations/__init__.py | 2 +- .../connectivity_matrix/optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../connectivity_matrix/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../connectivity_matrix/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../connectivity_matrices/connectivity_matrix/to/__init__.py | 2 +- .../connectivity_matrix/to/label_restrictions/__init__.py | 2 +- .../to/label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrix/underlay/__init__.py | 2 +- .../connectivity_matrix/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../connectivity_matrix/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../connectivity_matrix/underlay/tunnels/__init__.py | 2 +- .../connectivity_matrix/underlay/tunnels/tunnel/__init__.py | 2 +- .../connectivity_matrices/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../connectivity_matrices/optimizations/__init__.py | 2 +- .../connectivity_matrices/optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../connectivity_matrices/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../connectivity_matrices/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../connectivity_matrices/underlay/__init__.py | 2 +- .../connectivity_matrices/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../connectivity_matrices/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../connectivity_matrices/underlay/tunnels/__init__.py | 2 +- .../connectivity_matrices/underlay/tunnels/tunnel/__init__.py | 2 +- .../node/te/te_node_attributes/underlay_topology/__init__.py | 2 +- .../network/node/te/tunnel_termination_point/__init__.py | 2 +- .../client_layer_adaptation/__init__.py | 2 +- .../client_layer_adaptation/switching_capability/__init__.py | 2 +- .../switching_capability/te_bandwidth/__init__.py | 2 +- .../switching_capability/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../node/te/tunnel_termination_point/geolocation/__init__.py | 2 +- .../local_link_connectivities/__init__.py | 2 +- .../local_link_connectivities/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../local_link_connectivity/__init__.py | 2 +- .../local_link_connectivity/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../local_link_connectivity/optimizations/__init__.py | 2 +- .../optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../local_link_connectivity/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../local_link_connectivity/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../local_link_connectivity/underlay/__init__.py | 2 +- .../local_link_connectivity/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../local_link_connectivity/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../local_link_connectivity/underlay/tunnels/__init__.py | 2 +- .../underlay/tunnels/tunnel/__init__.py | 2 +- .../local_link_connectivities/optimizations/__init__.py | 2 +- .../optimizations/algorithm/__init__.py | 2 +- .../optimizations/algorithm/metric/__init__.py | 2 +- .../algorithm/metric/optimization_metric/__init__.py | 2 +- .../explicit_route_exclude_objects/__init__.py | 2 +- .../route_object_exclude_object/__init__.py | 2 +- .../route_object_exclude_object/type/__init__.py | 2 +- .../route_object_exclude_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_exclude_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/__init__.py | 2 +- .../route_object_exclude_object/type/srlg/srlg/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../explicit_route_include_objects/__init__.py | 2 +- .../route_object_include_object/__init__.py | 2 +- .../route_object_include_object/type/__init__.py | 2 +- .../route_object_include_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../route_object_include_object/type/label/__init__.py | 2 +- .../type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../optimizations/algorithm/metric/tiebreakers/__init__.py | 2 +- .../algorithm/metric/tiebreakers/tiebreaker/__init__.py | 2 +- .../optimizations/algorithm/objective_function/__init__.py | 2 +- .../objective_function/objective_function/__init__.py | 2 +- .../local_link_connectivities/path_constraints/__init__.py | 2 +- .../path_constraints/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_constraints/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_constraints/path_metric_bounds/__init__.py | 2 +- .../path_metric_bounds/path_metric_bound/__init__.py | 2 +- .../path_constraints/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_constraints/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../path_constraints/te_bandwidth/__init__.py | 2 +- .../path_constraints/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../local_link_connectivities/path_properties/__init__.py | 2 +- .../path_properties/path_affinities_values/__init__.py | 2 +- .../path_affinities_values/path_affinities_value/__init__.py | 2 +- .../path_properties/path_affinity_names/__init__.py | 2 +- .../path_affinity_names/path_affinity_name/__init__.py | 2 +- .../path_affinity_name/affinity_name/__init__.py | 2 +- .../path_properties/path_metric/__init__.py | 2 +- .../path_properties/path_route_objects/__init__.py | 2 +- .../path_route_objects/path_route_object/__init__.py | 2 +- .../path_route_objects/path_route_object/type/__init__.py | 2 +- .../path_route_object/type/as_number/__init__.py | 2 +- .../type/as_number/as_number_hop/__init__.py | 2 +- .../path_route_object/type/label/__init__.py | 2 +- .../path_route_object/type/label/label_hop/__init__.py | 2 +- .../type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_route_object/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_route_object/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_route_object/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../path_properties/path_srlgs_lists/__init__.py | 2 +- .../path_srlgs_lists/path_srlgs_list/__init__.py | 2 +- .../path_properties/path_srlgs_names/__init__.py | 2 +- .../path_srlgs_names/path_srlgs_name/__init__.py | 2 +- .../local_link_connectivities/underlay/__init__.py | 2 +- .../underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../local_link_connectivities/underlay/tunnels/__init__.py | 2 +- .../underlay/tunnels/tunnel/__init__.py | 2 +- .../node/te/tunnel_termination_point/statistics/__init__.py | 2 +- .../statistics/local_link_connectivity/__init__.py | 2 +- .../statistics/tunnel_termination_point/__init__.py | 2 +- .../supporting_tunnel_termination_point/__init__.py | 2 +- .../networks/network/node/termination_point/__init__.py | 2 +- .../supporting_termination_point/__init__.py | 2 +- .../networks/network/node/termination_point/te/__init__.py | 2 +- .../network/node/termination_point/te/geolocation/__init__.py | 2 +- .../te/interface_switching_capability/__init__.py | 2 +- .../max_lsp_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../bindings/networks/network/supporting_network/__init__.py | 2 +- .../bindings/networks/network/te/__init__.py | 2 +- .../bindings/networks/network/te/geolocation/__init__.py | 2 +- .../bindings/networks/network/te/nsrlg/__init__.py | 2 +- .../networks/network/te_topology_identifier/__init__.py | 2 +- .../ietf_network_slice/bindings/networks/te/__init__.py | 2 +- .../bindings/networks/te/templates/__init__.py | 2 +- .../bindings/networks/te/templates/link_template/__init__.py | 2 +- .../te/templates/link_template/te_link_attributes/__init__.py | 2 +- .../te_link_attributes/external_domain/__init__.py | 2 +- .../interface_switching_capability/__init__.py | 2 +- .../max_lsp_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_lsp_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../te_link_attributes/label_restrictions/__init__.py | 2 +- .../label_restrictions/label_restriction/__init__.py | 2 +- .../label_restriction/label_end/__init__.py | 2 +- .../label_restriction/label_end/te_label/__init__.py | 2 +- .../label_end/te_label/technology/__init__.py | 2 +- .../label_end/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_start/__init__.py | 2 +- .../label_restriction/label_start/te_label/__init__.py | 2 +- .../label_start/te_label/technology/__init__.py | 2 +- .../label_start/te_label/technology/generic/__init__.py | 2 +- .../label_restriction/label_step/__init__.py | 2 +- .../label_restriction/label_step/technology/__init__.py | 2 +- .../label_step/technology/generic/__init__.py | 2 +- .../te_link_attributes/max_link_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../max_link_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../te_link_attributes/max_resv_link_bandwidth/__init__.py | 2 +- .../max_resv_link_bandwidth/te_bandwidth/__init__.py | 2 +- .../te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../link_template/te_link_attributes/te_nsrlgs/__init__.py | 2 +- .../link_template/te_link_attributes/te_srlgs/__init__.py | 2 +- .../link_template/te_link_attributes/underlay/__init__.py | 2 +- .../te_link_attributes/underlay/backup_path/__init__.py | 2 +- .../underlay/backup_path/path_element/__init__.py | 2 +- .../underlay/backup_path/path_element/type/__init__.py | 2 +- .../backup_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/backup_path/path_element/type/label/__init__.py | 2 +- .../backup_path/path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../te_link_attributes/underlay/primary_path/__init__.py | 2 +- .../underlay/primary_path/path_element/__init__.py | 2 +- .../underlay/primary_path/path_element/type/__init__.py | 2 +- .../primary_path/path_element/type/as_number/__init__.py | 2 +- .../path_element/type/as_number/as_number_hop/__init__.py | 2 +- .../underlay/primary_path/path_element/type/label/__init__.py | 2 +- .../path_element/type/label/label_hop/__init__.py | 2 +- .../path_element/type/label/label_hop/te_label/__init__.py | 2 +- .../type/label/label_hop/te_label/technology/__init__.py | 2 +- .../label/label_hop/te_label/technology/generic/__init__.py | 2 +- .../path_element/type/numbered_link_hop/__init__.py | 2 +- .../type/numbered_link_hop/numbered_link_hop/__init__.py | 2 +- .../path_element/type/numbered_node_hop/__init__.py | 2 +- .../type/numbered_node_hop/numbered_node_hop/__init__.py | 2 +- .../path_element/type/unnumbered_link_hop/__init__.py | 2 +- .../type/unnumbered_link_hop/unnumbered_link_hop/__init__.py | 2 +- .../underlay/tunnel_termination_points/__init__.py | 2 +- .../te_link_attributes/underlay/tunnels/__init__.py | 2 +- .../te_link_attributes/underlay/tunnels/tunnel/__init__.py | 2 +- .../te_link_attributes/unreserved_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/__init__.py | 2 +- .../unreserved_bandwidth/te_bandwidth/technology/__init__.py | 2 +- .../te_bandwidth/technology/generic/__init__.py | 2 +- .../bindings/networks/te/templates/node_template/__init__.py | 2 +- .../te/templates/node_template/te_node_attributes/__init__.py | 2 +- .../te_node_attributes/underlay_topology/__init__.py | 2 +- .../nbi_plugins/ietf_network_slice/ofc23_batch_slices.py | 2 +- src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py | 2 +- src/nbi/service/rest_server/nbi_plugins/tfs_api/Tools.py | 2 +- src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py | 2 +- .../service/rest_server/nbi_plugins/tools/Authentication.py | 2 +- .../service/rest_server/nbi_plugins/tools/HttpStatusCodes.py | 2 +- src/nbi/service/rest_server/nbi_plugins/tools/Validator.py | 2 +- src/nbi/service/rest_server/nbi_plugins/tools/__init__.py | 2 +- src/nbi/tests/Constants.py | 2 +- src/nbi/tests/MockService_Dependencies.py | 2 +- src/nbi/tests/PrepareTestScenario.py | 2 +- src/nbi/tests/__init__.py | 2 +- src/nbi/tests/test_etsi_bwm.py | 2 +- src/nbi/tests/test_ietf_l2vpn.py | 2 +- src/nbi/tests/test_ietf_l3vpn.py | 2 +- src/nbi/tests/test_ietf_network.py | 2 +- src/nbi/tests/test_slice.py | 2 +- src/nbi/tests/test_tfs_api.py | 2 +- src/opticalattackdetector/.gitlab-ci.yml | 2 +- src/opticalattackdetector/Config.py | 2 +- src/opticalattackdetector/Dockerfile | 2 +- src/opticalattackdetector/__init__.py | 2 +- .../client/OpticalAttackDetectorClient.py | 2 +- src/opticalattackdetector/client/__init__.py | 2 +- src/opticalattackdetector/requirements.in | 2 +- .../service/OpticalAttackDetectorService.py | 2 +- .../service/OpticalAttackDetectorServiceServicerImpl.py | 2 +- src/opticalattackdetector/service/__init__.py | 2 +- src/opticalattackdetector/service/__main__.py | 2 +- src/opticalattackdetector/tests/__init__.py | 2 +- src/opticalattackdetector/tests/example_objects.py | 2 +- src/opticalattackdetector/tests/test_unitary.py | 2 +- src/opticalattackmanager/.gitlab-ci.yml | 2 +- src/opticalattackmanager/Config.py | 2 +- src/opticalattackmanager/Dockerfile | 2 +- src/opticalattackmanager/__init__.py | 2 +- src/opticalattackmanager/requirements.in | 2 +- src/opticalattackmanager/service/__init__.py | 2 +- src/opticalattackmanager/service/__main__.py | 2 +- src/opticalattackmanager/tests/__init__.py | 2 +- src/opticalattackmanager/tests/test_unitary.py | 2 +- src/opticalattackmanager/utils/__init__.py | 2 +- src/opticalattackmanager/utils/monitor.py | 2 +- src/opticalattackmitigator/.gitlab-ci.yml | 2 +- src/opticalattackmitigator/Config.py | 2 +- src/opticalattackmitigator/Dockerfile | 2 +- src/opticalattackmitigator/__init__.py | 2 +- .../client/OpticalAttackMitigatorClient.py | 2 +- src/opticalattackmitigator/client/__init__.py | 2 +- src/opticalattackmitigator/requirements.in | 2 +- .../service/OpticalAttackMitigatorService.py | 2 +- .../service/OpticalAttackMitigatorServiceServicerImpl.py | 2 +- src/opticalattackmitigator/service/__init__.py | 2 +- src/opticalattackmitigator/service/__main__.py | 2 +- src/opticalattackmitigator/tests/__init__.py | 2 +- src/opticalattackmitigator/tests/test_unitary.py | 2 +- src/opticalcontroller/.gitlab-ci.yml | 2 +- src/opticalcontroller/Dockerfile | 2 +- src/opticalcontroller/OpticalController.py | 2 +- src/opticalcontroller/RSA.py | 2 +- src/opticalcontroller/__init__.py | 2 +- src/opticalcontroller/dijsktra.py | 2 +- src/opticalcontroller/requirements.in | 2 +- src/opticalcontroller/tools.py | 2 +- src/opticalcontroller/variables.py | 2 +- src/pathcomp/.gitlab-ci.yml | 2 +- src/pathcomp/__init__.py | 2 +- src/pathcomp/backend/Dockerfile | 2 +- src/pathcomp/backend/Dockerfile-gdb | 2 +- src/pathcomp/backend/Makefile | 2 +- src/pathcomp/backend/pathComp.c | 2 +- src/pathcomp/backend/pathComp.h | 2 +- src/pathcomp/backend/pathComp_RESTapi.c | 2 +- src/pathcomp/backend/pathComp_RESTapi.h | 2 +- src/pathcomp/backend/pathComp_cjson.c | 2 +- src/pathcomp/backend/pathComp_cjson.h | 2 +- src/pathcomp/backend/pathComp_ear.c | 2 +- src/pathcomp/backend/pathComp_ear.h | 2 +- src/pathcomp/backend/pathComp_ksp.c | 2 +- src/pathcomp/backend/pathComp_ksp.h | 2 +- src/pathcomp/backend/pathComp_log.c | 2 +- src/pathcomp/backend/pathComp_log.h | 2 +- src/pathcomp/backend/pathComp_sp.c | 2 +- src/pathcomp/backend/pathComp_sp.h | 2 +- src/pathcomp/backend/pathComp_tools.c | 2 +- src/pathcomp/backend/pathComp_tools.h | 2 +- src/pathcomp/backend/tests/run-test.sh | 2 +- src/pathcomp/frontend/Config.py | 2 +- src/pathcomp/frontend/Dockerfile | 2 +- src/pathcomp/frontend/__init__.py | 2 +- src/pathcomp/frontend/client/PathCompClient.py | 2 +- src/pathcomp/frontend/client/__init__.py | 2 +- src/pathcomp/frontend/requirements.in | 2 +- src/pathcomp/frontend/service/PathCompService.py | 2 +- src/pathcomp/frontend/service/PathCompServiceServicerImpl.py | 2 +- src/pathcomp/frontend/service/TopologyTools.py | 2 +- src/pathcomp/frontend/service/__init__.py | 2 +- src/pathcomp/frontend/service/__main__.py | 2 +- src/pathcomp/frontend/service/algorithms/Factory.py | 2 +- .../frontend/service/algorithms/KDisjointPathAlgorithm.py | 2 +- .../frontend/service/algorithms/KShortestPathAlgorithm.py | 2 +- .../frontend/service/algorithms/ShortestPathAlgorithm.py | 2 +- src/pathcomp/frontend/service/algorithms/_Algorithm.py | 2 +- src/pathcomp/frontend/service/algorithms/__init__.py | 2 +- .../frontend/service/algorithms/tools/ComposeConfigRules.py | 2 +- .../frontend/service/algorithms/tools/ComposeRequest.py | 2 +- .../frontend/service/algorithms/tools/ComputeSubServices.py | 2 +- .../frontend/service/algorithms/tools/ConstantsMappings.py | 2 +- .../frontend/service/algorithms/tools/EroPathToHops.py | 2 +- .../frontend/service/algorithms/tools/ResourceGroups.py | 2 +- .../frontend/service/algorithms/tools/ServiceTypes.py | 2 +- src/pathcomp/frontend/service/algorithms/tools/__init__.py | 2 +- src/pathcomp/frontend/tests/MockService_Dependencies.py | 2 +- src/pathcomp/frontend/tests/Objects_A_B_C.py | 2 +- src/pathcomp/frontend/tests/Objects_DC_CSGW_TN.py | 2 +- src/pathcomp/frontend/tests/Objects_DC_CSGW_TN_OLS.py | 2 +- src/pathcomp/frontend/tests/PrepareTestScenario.py | 2 +- src/pathcomp/frontend/tests/__init__.py | 2 +- src/pathcomp/frontend/tests/test_ero_path.py | 2 +- src/pathcomp/frontend/tests/test_pathcomp/__init__.py | 2 +- src/pathcomp/frontend/tests/test_pathcomp/__main__.py | 2 +- src/pathcomp/frontend/tests/test_pathcomp/data.py | 2 +- src/pathcomp/frontend/tests/test_unitary.py | 2 +- .../frontend/tests/test_unitary_pathcomp_forecaster.py | 2 +- src/pathcomp/misc/my_deploy-tests.sh | 2 +- src/pathcomp/misc/test-commands.sh | 2 +- src/policy/.gitlab-ci.yml | 2 +- src/policy/pom.xml | 2 +- src/policy/src/main/docker/Dockerfile.multistage.jvm | 2 +- src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java | 2 +- .../main/java/org/etsi/tfs/policy/SimpleLivenessCheck.java | 2 +- .../main/java/org/etsi/tfs/policy/SimpleReadinessCheck.java | 2 +- .../src/main/java/org/etsi/tfs/policy/acl/AclAction.java | 2 +- .../src/main/java/org/etsi/tfs/policy/acl/AclEntry.java | 2 +- .../java/org/etsi/tfs/policy/acl/AclForwardActionEnum.java | 2 +- .../main/java/org/etsi/tfs/policy/acl/AclLogActionEnum.java | 2 +- .../src/main/java/org/etsi/tfs/policy/acl/AclMatch.java | 2 +- .../src/main/java/org/etsi/tfs/policy/acl/AclRuleSet.java | 2 +- .../main/java/org/etsi/tfs/policy/acl/AclRuleTypeEnum.java | 2 +- .../org/etsi/tfs/policy/common/ApplicationProperties.java | 2 +- src/policy/src/main/java/org/etsi/tfs/policy/common/Util.java | 2 +- .../main/java/org/etsi/tfs/policy/context/ContextGateway.java | 2 +- .../java/org/etsi/tfs/policy/context/ContextGatewayImpl.java | 2 +- .../main/java/org/etsi/tfs/policy/context/ContextService.java | 2 +- .../java/org/etsi/tfs/policy/context/ContextServiceImpl.java | 2 +- .../org/etsi/tfs/policy/context/model/ConfigActionEnum.java | 2 +- .../java/org/etsi/tfs/policy/context/model/ConfigRule.java | 2 +- .../java/org/etsi/tfs/policy/context/model/ConfigRuleAcl.java | 2 +- .../org/etsi/tfs/policy/context/model/ConfigRuleCustom.java | 2 +- .../org/etsi/tfs/policy/context/model/ConfigRuleType.java | 2 +- .../org/etsi/tfs/policy/context/model/ConfigRuleTypeAcl.java | 2 +- .../etsi/tfs/policy/context/model/ConfigRuleTypeCustom.java | 2 +- .../java/org/etsi/tfs/policy/context/model/Constraint.java | 2 +- .../org/etsi/tfs/policy/context/model/ConstraintCustom.java | 2 +- .../tfs/policy/context/model/ConstraintEndPointLocation.java | 2 +- .../org/etsi/tfs/policy/context/model/ConstraintSchedule.java | 2 +- .../tfs/policy/context/model/ConstraintSlaAvailability.java | 2 +- .../etsi/tfs/policy/context/model/ConstraintSlaCapacity.java | 2 +- .../tfs/policy/context/model/ConstraintSlaIsolationLevel.java | 2 +- .../etsi/tfs/policy/context/model/ConstraintSlaLatency.java | 2 +- .../org/etsi/tfs/policy/context/model/ConstraintType.java | 2 +- .../etsi/tfs/policy/context/model/ConstraintTypeCustom.java | 2 +- .../policy/context/model/ConstraintTypeEndPointLocation.java | 2 +- .../etsi/tfs/policy/context/model/ConstraintTypeSchedule.java | 2 +- .../policy/context/model/ConstraintTypeSlaAvailability.java | 2 +- .../tfs/policy/context/model/ConstraintTypeSlaCapacity.java | 2 +- .../policy/context/model/ConstraintTypeSlaIsolationLevel.java | 2 +- .../tfs/policy/context/model/ConstraintTypeSlaLatency.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/Device.java | 2 +- .../java/org/etsi/tfs/policy/context/model/DeviceConfig.java | 2 +- .../org/etsi/tfs/policy/context/model/DeviceDriverEnum.java | 2 +- .../tfs/policy/context/model/DeviceOperationalStatus.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/Empty.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/EndPoint.java | 2 +- .../java/org/etsi/tfs/policy/context/model/EndPointId.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/Event.java | 2 +- .../java/org/etsi/tfs/policy/context/model/EventTypeEnum.java | 2 +- .../java/org/etsi/tfs/policy/context/model/GpsPosition.java | 2 +- .../org/etsi/tfs/policy/context/model/IsolationLevelEnum.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/Location.java | 2 +- .../java/org/etsi/tfs/policy/context/model/LocationType.java | 2 +- .../tfs/policy/context/model/LocationTypeGpsPosition.java | 2 +- .../org/etsi/tfs/policy/context/model/LocationTypeRegion.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/Service.java | 2 +- .../java/org/etsi/tfs/policy/context/model/ServiceConfig.java | 2 +- .../java/org/etsi/tfs/policy/context/model/ServiceId.java | 2 +- .../java/org/etsi/tfs/policy/context/model/ServiceStatus.java | 2 +- .../org/etsi/tfs/policy/context/model/ServiceStatusEnum.java | 2 +- .../org/etsi/tfs/policy/context/model/ServiceTypeEnum.java | 2 +- .../main/java/org/etsi/tfs/policy/context/model/SliceId.java | 2 +- .../java/org/etsi/tfs/policy/context/model/TopologyId.java | 2 +- .../main/java/org/etsi/tfs/policy/device/DeviceGateway.java | 2 +- .../java/org/etsi/tfs/policy/device/DeviceGatewayImpl.java | 2 +- .../main/java/org/etsi/tfs/policy/device/DeviceService.java | 2 +- .../java/org/etsi/tfs/policy/device/DeviceServiceImpl.java | 2 +- .../tfs/policy/exception/ExternalServiceFailureException.java | 2 +- .../etsi/tfs/policy/exception/GeneralExceptionHandler.java | 2 +- .../etsi/tfs/policy/kpi_sample_types/model/KpiSampleType.java | 2 +- .../org/etsi/tfs/policy/monitoring/MonitoringGateway.java | 2 +- .../org/etsi/tfs/policy/monitoring/MonitoringGatewayImpl.java | 2 +- .../org/etsi/tfs/policy/monitoring/MonitoringService.java | 2 +- .../org/etsi/tfs/policy/monitoring/MonitoringServiceImpl.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/AlarmDescriptor.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/AlarmResponse.java | 2 +- .../etsi/tfs/policy/monitoring/model/AlarmSubscription.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/BooleanKpiValue.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/FloatKpiValue.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/IntegerKpiValue.java | 2 +- .../main/java/org/etsi/tfs/policy/monitoring/model/Kpi.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/KpiDescriptor.java | 2 +- .../java/org/etsi/tfs/policy/monitoring/model/KpiValue.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/KpiValueRange.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/LongKpiValue.java | 2 +- .../etsi/tfs/policy/monitoring/model/MonitorKpiRequest.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/StringKpiValue.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/SubsDescriptor.java | 2 +- .../org/etsi/tfs/policy/monitoring/model/SubsResponse.java | 2 +- .../java/org/etsi/tfs/policy/policy/AddPolicyDeviceImpl.java | 2 +- .../java/org/etsi/tfs/policy/policy/AddPolicyServiceImpl.java | 2 +- .../java/org/etsi/tfs/policy/policy/CommonAlarmService.java | 2 +- .../org/etsi/tfs/policy/policy/CommonPolicyServiceImpl.java | 2 +- .../main/java/org/etsi/tfs/policy/policy/PolicyGateway.java | 2 +- .../java/org/etsi/tfs/policy/policy/PolicyGatewayImpl.java | 2 +- .../main/java/org/etsi/tfs/policy/policy/PolicyService.java | 2 +- .../java/org/etsi/tfs/policy/policy/PolicyServiceImpl.java | 2 +- .../org/etsi/tfs/policy/policy/model/BooleanOperator.java | 2 +- .../org/etsi/tfs/policy/policy/model/NumericalOperator.java | 2 +- .../java/org/etsi/tfs/policy/policy/model/PolicyRule.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleAction.java | 2 +- .../etsi/tfs/policy/policy/model/PolicyRuleActionConfig.java | 2 +- .../etsi/tfs/policy/policy/model/PolicyRuleActionEnum.java | 2 +- .../java/org/etsi/tfs/policy/policy/model/PolicyRuleBase.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleBasic.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleCondition.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleDevice.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleService.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleState.java | 2 +- .../org/etsi/tfs/policy/policy/model/PolicyRuleStateEnum.java | 2 +- .../java/org/etsi/tfs/policy/policy/model/PolicyRuleType.java | 2 +- .../etsi/tfs/policy/policy/model/PolicyRuleTypeDevice.java | 2 +- .../etsi/tfs/policy/policy/model/PolicyRuleTypeService.java | 2 +- .../policy/service/PolicyRuleConditionFieldsGetter.java | 2 +- .../policy/policy/service/PolicyRuleConditionValidator.java | 2 +- .../main/java/org/etsi/tfs/policy/service/ServiceGateway.java | 2 +- .../java/org/etsi/tfs/policy/service/ServiceGatewayImpl.java | 2 +- .../main/java/org/etsi/tfs/policy/service/ServiceService.java | 2 +- .../java/org/etsi/tfs/policy/service/ServiceServiceImpl.java | 2 +- src/policy/src/main/resources/application.yml | 2 +- .../src/test/java/org/etsi/tfs/policy/ConfigRuleTypeTest.java | 2 +- .../src/test/java/org/etsi/tfs/policy/ConstraintTypeTest.java | 2 +- .../test/java/org/etsi/tfs/policy/EndPointCreationTest.java | 2 +- .../src/test/java/org/etsi/tfs/policy/LocationTypeTest.java | 2 +- .../test/java/org/etsi/tfs/policy/PolicyAddDeviceTest.java | 2 +- .../test/java/org/etsi/tfs/policy/PolicyAddServiceTest.java | 2 +- .../java/org/etsi/tfs/policy/PolicyDeleteServiceTest.java | 2 +- .../test/java/org/etsi/tfs/policy/PolicyGrpcServiceTest.java | 2 +- .../org/etsi/tfs/policy/PolicyRuleBasicValidationTest.java | 2 +- .../etsi/tfs/policy/PolicyRuleConditionValidationTest.java | 2 +- .../org/etsi/tfs/policy/PolicyRuleDeviceValidationTest.java | 2 +- .../org/etsi/tfs/policy/PolicyRuleServiceValidationTest.java | 2 +- .../test/java/org/etsi/tfs/policy/PolicyUpdateDeviceTest.java | 2 +- .../java/org/etsi/tfs/policy/PolicyUpdateServiceTest.java | 2 +- .../src/test/java/org/etsi/tfs/policy/SerializerTest.java | 2 +- src/policy/util/set_version.sh | 2 +- src/service/.gitlab-ci.yml | 2 +- src/service/Config.py | 2 +- src/service/Dockerfile | 2 +- src/service/__init__.py | 2 +- src/service/client/ServiceClient.py | 2 +- src/service/client/TEServiceClient.py | 2 +- src/service/client/__init__.py | 2 +- src/service/requirements.in | 2 +- src/service/service/ServiceService.py | 2 +- src/service/service/ServiceServiceServicerImpl.py | 2 +- src/service/service/__init__.py | 2 +- src/service/service/__main__.py | 2 +- src/service/service/service_handler_api/AnyTreeTools.py | 2 +- src/service/service/service_handler_api/Exceptions.py | 2 +- src/service/service/service_handler_api/FilterFields.py | 2 +- .../service/service_handler_api/ServiceHandlerFactory.py | 2 +- src/service/service/service_handler_api/SettingsHandler.py | 2 +- src/service/service/service_handler_api/Tools.py | 2 +- src/service/service/service_handler_api/_ServiceHandler.py | 2 +- src/service/service/service_handler_api/__init__.py | 2 +- src/service/service/service_handlers/__init__.py | 2 +- .../e2e_orch/E2EOrchestratorServiceHandler.py | 2 +- src/service/service/service_handlers/e2e_orch/__init__.py | 2 +- .../service/service_handlers/l2nm_emulated/ConfigRules.py | 2 +- .../l2nm_emulated/L2NMEmulatedServiceHandler.py | 2 +- .../service/service_handlers/l2nm_emulated/__init__.py | 2 +- .../l2nm_ietfl2vpn/L2NM_IETFL2VPN_ServiceHandler.py | 2 +- .../service/service_handlers/l2nm_ietfl2vpn/__init__.py | 2 +- .../service/service_handlers/l2nm_openconfig/ConfigRules.py | 2 +- .../l2nm_openconfig/L2NMOpenConfigServiceHandler.py | 2 +- .../service/service_handlers/l2nm_openconfig/__init__.py | 2 +- .../service/service_handlers/l3nm_emulated/ConfigRules.py | 2 +- .../l3nm_emulated/L3NMEmulatedServiceHandler.py | 2 +- .../service/service_handlers/l3nm_emulated/__init__.py | 2 +- .../l3nm_gnmi_openconfig/ConfigRuleComposer.py | 2 +- .../l3nm_gnmi_openconfig/L3NMGnmiOpenConfigServiceHandler.py | 2 +- .../service/service_handlers/l3nm_gnmi_openconfig/__init__.py | 2 +- .../service/service_handlers/l3nm_ietf_actn/Constants.py | 2 +- .../l3nm_ietf_actn/L3NMIetfActnServiceHandler.py | 2 +- .../service/service_handlers/l3nm_ietf_actn/__init__.py | 2 +- .../service/service_handlers/l3nm_openconfig/ConfigRules.py | 2 +- .../l3nm_openconfig/L3NMOpenConfigServiceHandler.py | 2 +- .../service/service_handlers/l3nm_openconfig/__init__.py | 2 +- .../service_handlers/microwave/MicrowaveServiceHandler.py | 2 +- src/service/service/service_handlers/microwave/__init__.py | 2 +- src/service/service/service_handlers/oc/ConfigRules.py | 2 +- src/service/service/service_handlers/oc/OCServiceHandler.py | 2 +- src/service/service/service_handlers/oc/OCTools.py | 2 +- src/service/service/service_handlers/oc/__init__.py | 2 +- src/service/service/service_handlers/p4/__init__.py | 2 +- src/service/service/service_handlers/p4/p4_service_handler.py | 2 +- .../service/service_handlers/tapi_tapi/TapiServiceHandler.py | 2 +- src/service/service/service_handlers/tapi_tapi/__init__.py | 2 +- .../service/service_handlers/tapi_xr/TapiXrServiceHandler.py | 2 +- src/service/service/service_handlers/tapi_xr/__init__.py | 2 +- src/service/service/task_scheduler/ConnectionExpander.py | 2 +- src/service/service/task_scheduler/TaskExecutor.py | 2 +- src/service/service/task_scheduler/TaskScheduler.py | 2 +- src/service/service/task_scheduler/__init__.py | 2 +- .../service/task_scheduler/tasks/Task_ConnectionConfigure.py | 2 +- .../task_scheduler/tasks/Task_ConnectionDeconfigure.py | 2 +- .../service/task_scheduler/tasks/Task_ServiceDelete.py | 2 +- .../service/task_scheduler/tasks/Task_ServiceSetStatus.py | 2 +- src/service/service/task_scheduler/tasks/_Task.py | 2 +- src/service/service/task_scheduler/tasks/__init__.py | 2 +- src/service/service/tools/ConnectionToString.py | 2 +- src/service/service/tools/EndpointIdFormatters.py | 2 +- src/service/service/tools/GeodesicDistance.py | 2 +- src/service/service/tools/ObjectKeys.py | 2 +- src/service/service/tools/OpticalTools.py | 2 +- src/service/service/tools/__init__.py | 2 +- src/service/service/tools/replies.py | 2 +- src/service/tests/CommonObjects.py | 2 +- src/service/tests/MockService_Dependencies.py | 2 +- src/service/tests/PrepareTestScenario.py | 2 +- src/service/tests/ServiceHandler_L3NM_EMU.py | 2 +- src/service/tests/ServiceHandler_L3NM_OC.py | 2 +- src/service/tests/ServiceHandlersToTest.py | 2 +- src/service/tests/__init__.py | 2 +- src/service/tests/test_service_recompute_cons.sh | 2 +- src/service/tests/test_unitary.py | 2 +- src/service/tests/test_unitary_recompute_conns.py | 2 +- src/service/tests/test_unitary_task_scheduler.py | 2 +- src/slice/.gitlab-ci.yml | 2 +- src/slice/Config.py | 2 +- src/slice/Dockerfile | 2 +- src/slice/__init__.py | 2 +- src/slice/client/SliceClient.py | 2 +- src/slice/client/__init__.py | 2 +- src/slice/old_code/ConstraintsChecker.py | 2 +- src/slice/old_code/SliceCheckers.py | 2 +- src/slice/old_code/SliceStatus.py | 2 +- src/slice/old_code/Tools.py | 2 +- src/slice/old_code/Tools_2.py | 2 +- src/slice/requirements.in | 2 +- src/slice/service/SliceService.py | 2 +- src/slice/service/SliceServiceServicerImpl.py | 2 +- src/slice/service/__init__.py | 2 +- src/slice/service/__main__.py | 2 +- src/slice/service/slice_grouper/Constants.py | 2 +- src/slice/service/slice_grouper/MetricsExporter.py | 2 +- src/slice/service/slice_grouper/SliceGrouper.py | 2 +- src/slice/service/slice_grouper/Tools.py | 2 +- src/slice/service/slice_grouper/__init__.py | 2 +- src/slice/tests/__init__.py | 2 +- src/slice/tests/old/Main.py | 2 +- src/slice/tests/old/MetricsExporter.py | 2 +- src/slice/tests/old/test_kmeans.py | 2 +- src/slice/tests/old/test_subslices.py | 2 +- src/slice/tests/test_unitary.py | 2 +- src/te/Dockerfile | 2 +- src/te/apps/epce/src/epce.app.src | 2 +- src/te/apps/epce/src/epce_app.erl | 2 +- src/te/apps/epce/src/epce_pcep_server_handler.erl | 2 +- src/te/apps/epce/src/epce_server.erl | 2 +- src/te/apps/epce/src/epce_sup.erl | 2 +- src/te/apps/epce/src/epce_ted.erl | 2 +- src/te/apps/tfte/src/tfte.app.src | 2 +- src/te/apps/tfte/src/tfte_app.erl | 2 +- src/te/apps/tfte/src/tfte_context.erl | 2 +- src/te/apps/tfte/src/tfte_server.erl | 2 +- src/te/apps/tfte/src/tfte_service_sup.erl | 2 +- src/te/apps/tfte/src/tfte_sup.erl | 2 +- src/te/apps/tfte/src/tfte_te_service.erl | 2 +- src/te/apps/tfte/src/tfte_topology.erl | 2 +- src/te/apps/tfte/src/tfte_util.erl | 2 +- src/te/config/dev.config.template | 2 +- src/te/config/sys.config.src | 2 +- src/te/rebar.config | 2 +- src/te/tests/deploy_specs.sh | 2 +- src/te/tests/netgen-config.yml | 2 +- src/te/tests/netgen-topology.yml.template | 2 +- src/te/tests/start-testbed.sh | 2 +- src/te/tests/test_te_service.py | 2 +- src/tests/.gitlab-ci.yml | 2 +- src/tests/Fixtures.py | 2 +- src/tests/__init__.py | 2 +- src/tests/benchmark/policy/PolicyAddService.js | 2 +- src/tests/benchmark/policy/PolicyDelete.js | 2 +- src/tests/benchmark/policy/PolicyUpdateService.js | 2 +- src/tests/benchmark/policy/__init__.py | 2 +- src/tests/benchmark/policy/deploy_specs.sh | 2 +- src/tests/benchmark/policy/run_test_01_bootstrap.sh | 2 +- src/tests/benchmark/policy/run_test_02_create_service.sh | 2 +- src/tests/benchmark/policy/run_test_03_delete_service.sh | 2 +- src/tests/benchmark/policy/run_test_04_cleanup.sh | 2 +- src/tests/benchmark/policy/tests/Fixtures.py | 2 +- src/tests/benchmark/policy/tests/Objects.py | 2 +- src/tests/benchmark/policy/tests/__init__.py | 2 +- src/tests/benchmark/policy/tests/test_functional_bootstrap.py | 2 +- src/tests/benchmark/policy/tests/test_functional_cleanup.py | 2 +- .../benchmark/policy/tests/test_functional_create_service.py | 2 +- .../benchmark/policy/tests/test_functional_delete_service.py | 2 +- src/tests/benchmark/ztp/ZtpAdd.js | 2 +- src/tests/benchmark/ztp/ZtpDelete.js | 2 +- src/tests/benchmark/ztp/ZtpUpdate.js | 2 +- src/tests/benchmark/ztp/__init__.py | 2 +- src/tests/benchmark/ztp/run_test_01_bootstrap.sh | 2 +- src/tests/benchmark/ztp/run_test_02_cleanup.sh | 2 +- src/tests/benchmark/ztp/tests/Fixtures.py | 2 +- src/tests/benchmark/ztp/tests/Objects.py | 2 +- src/tests/benchmark/ztp/tests/__init__.py | 2 +- src/tests/benchmark/ztp/tests/test_functional_bootstrap.py | 2 +- src/tests/benchmark/ztp/tests/test_functional_cleanup.py | 2 +- src/tests/ecoc22/.gitlab-ci.yml | 2 +- src/tests/ecoc22/Dockerfile | 2 +- src/tests/ecoc22/__init__.py | 2 +- src/tests/ecoc22/deploy_specs.sh | 2 +- src/tests/ecoc22/redeploy.sh | 2 +- src/tests/ecoc22/requirements.in | 2 +- src/tests/ecoc22/run_test_01_bootstrap.sh | 2 +- src/tests/ecoc22/run_test_02_create_service.sh | 2 +- src/tests/ecoc22/run_test_03_delete_service.sh | 2 +- src/tests/ecoc22/run_test_04_cleanup.sh | 2 +- src/tests/ecoc22/run_tests.sh | 2 +- src/tests/ecoc22/tests/Fixtures.py | 2 +- src/tests/ecoc22/tests/Objects.py | 2 +- src/tests/ecoc22/tests/Tools.py | 2 +- src/tests/ecoc22/tests/__init__.py | 2 +- src/tests/ecoc22/tests/old_code/BuildDescriptors.py | 2 +- src/tests/ecoc22/tests/old_code/LoadDescriptors.py | 2 +- src/tests/ecoc22/tests/old_code/Objects_BigNet.py | 2 +- src/tests/ecoc22/tests/old_code/Objects_DC_CSGW_OLS.py | 2 +- src/tests/ecoc22/tests/old_code/Objects_DC_CSGW_TN.py | 2 +- src/tests/ecoc22/tests/old_code/Objects_DC_CSGW_TN_OLS.py | 2 +- src/tests/ecoc22/tests/test_functional_bootstrap.py | 2 +- src/tests/ecoc22/tests/test_functional_cleanup.py | 2 +- src/tests/ecoc22/tests/test_functional_create_service.py | 2 +- src/tests/ecoc22/tests/test_functional_delete_service.py | 2 +- src/tests/hackfest3/__init__.py | 2 +- src/tests/hackfest3/deploy_specs.sh | 2 +- src/tests/hackfest3/grpc/addPolicy.sh | 2 +- src/tests/hackfest3/grpc/removePolicy.sh | 2 +- src/tests/hackfest3/int/build_p4.sh | 2 +- src/tests/hackfest3/int/connect_to_mininet.sh | 2 +- src/tests/hackfest3/int/copy_int_helpers.sh | 2 +- src/tests/hackfest3/int/install-scapy.sh | 2 +- src/tests/hackfest3/int/receive.py | 2 +- src/tests/hackfest3/int/send.py | 2 +- src/tests/hackfest3/int/solution/p4_service_handler.py | 2 +- src/tests/hackfest3/int/solution/timestamp/receive2.py | 2 +- src/tests/hackfest3/new-probe/agent.py | 2 +- src/tests/hackfest3/new-probe/connect_to_mininet.sh | 2 +- src/tests/hackfest3/new-probe/copy.sh | 2 +- src/tests/hackfest3/new-probe/ping2.py | 2 +- src/tests/hackfest3/new-probe/solution/agent.py | 2 +- src/tests/hackfest3/new-probe/solution/connect_to_mininet.sh | 2 +- src/tests/hackfest3/new-probe/solution/copy.sh | 2 +- src/tests/hackfest3/new-probe/solution/ping2.py | 2 +- src/tests/hackfest3/probe/monitoring_kpis.py | 2 +- src/tests/hackfest3/probe/probe-tfs/Cargo.toml | 2 +- src/tests/hackfest3/probe/probe-tfs/build.rs | 2 +- src/tests/hackfest3/probe/probe-tfs/connect_to_mininet.sh | 2 +- src/tests/hackfest3/probe/probe-tfs/deploy.sh | 2 +- src/tests/hackfest3/probe/probe-tfs/src/agent.rs | 2 +- src/tests/hackfest3/probe/probe-tfs/src/ping.rs | 2 +- src/tests/hackfest3/run_test_01_bootstrap.sh | 2 +- src/tests/hackfest3/run_test_02_create_service.sh | 2 +- src/tests/hackfest3/run_test_03_delete_service.sh | 2 +- src/tests/hackfest3/run_test_04_cleanup.sh | 2 +- src/tests/hackfest3/setup.sh | 2 +- src/tests/hackfest3/tests/BuildDescriptors.py | 2 +- src/tests/hackfest3/tests/LoadDescriptors.py | 2 +- src/tests/hackfest3/tests/Objects.py | 2 +- src/tests/hackfest3/tests/__init__.py | 2 +- src/tests/hackfest3/tests/test_functional_bootstrap.py | 2 +- src/tests/hackfest3/tests/test_functional_cleanup.py | 2 +- src/tests/hackfest3/tests/test_functional_create_service.py | 2 +- src/tests/hackfest3/tests/test_functional_delete_service.py | 2 +- src/tests/oeccpsc22/__init__.py | 2 +- src/tests/oeccpsc22/delete_all.sh | 2 +- src/tests/oeccpsc22/deploy_all.sh | 2 +- src/tests/oeccpsc22/deploy_dom1.sh | 2 +- src/tests/oeccpsc22/deploy_dom2.sh | 2 +- src/tests/oeccpsc22/deploy_specs_dom1.sh | 2 +- src/tests/oeccpsc22/deploy_specs_dom2.sh | 2 +- src/tests/oeccpsc22/dump_logs.sh | 2 +- src/tests/oeccpsc22/expose_interdomain_dom2.sh | 2 +- src/tests/oeccpsc22/fast_redeploy.sh | 2 +- src/tests/oeccpsc22/nginx-ingress-controller-dom1.yaml | 2 +- src/tests/oeccpsc22/nginx-ingress-controller-dom2.yaml | 2 +- src/tests/oeccpsc22/nginx-ingress-http-dom1.yaml | 2 +- src/tests/oeccpsc22/nginx-ingress-http-dom2.yaml | 2 +- src/tests/oeccpsc22/old/deploy_in_kubernetes.sh | 2 +- src/tests/oeccpsc22/old/expose-services-dom1.yaml | 2 +- src/tests/oeccpsc22/old/expose-services-dom2.yaml | 2 +- src/tests/oeccpsc22/run_test_01_bootstrap.sh | 2 +- src/tests/oeccpsc22/run_test_02_create_interdomain_slice.sh | 2 +- src/tests/oeccpsc22/run_test_03_delete_interdomain_slice.sh | 2 +- src/tests/oeccpsc22/run_test_04_cleanup.sh | 2 +- src/tests/oeccpsc22/show_deploy.sh | 2 +- src/tests/oeccpsc22/tests/Objects_Domain_1.py | 2 +- src/tests/oeccpsc22/tests/Objects_Domain_2.py | 2 +- src/tests/oeccpsc22/tests/Objects_Service.py | 2 +- src/tests/oeccpsc22/tests/Tools.py | 2 +- src/tests/oeccpsc22/tests/__init__.py | 2 +- src/tests/oeccpsc22/tests/test_functional_bootstrap.py | 2 +- src/tests/oeccpsc22/tests/test_functional_cleanup.py | 2 +- .../tests/test_functional_create_interdomain_slice.py | 2 +- .../tests/test_functional_delete_interdomain_slice.py | 2 +- src/tests/ofc22/.gitlab-ci.yml | 2 +- src/tests/ofc22/Dockerfile | 2 +- src/tests/ofc22/__init__.py | 2 +- src/tests/ofc22/deploy_specs.sh | 2 +- src/tests/ofc22/redeploy.sh | 2 +- src/tests/ofc22/requirements.in | 2 +- src/tests/ofc22/run_test_01_bootstrap.sh | 2 +- src/tests/ofc22/run_test_02_create_service.sh | 2 +- src/tests/ofc22/run_test_03_delete_service.sh | 2 +- src/tests/ofc22/run_test_04_cleanup.sh | 2 +- src/tests/ofc22/run_tests.sh | 2 +- src/tests/ofc22/tests/Fixtures.py | 2 +- src/tests/ofc22/tests/Objects.py | 2 +- src/tests/ofc22/tests/ObjectsXr.py | 2 +- src/tests/ofc22/tests/__init__.py | 2 +- src/tests/ofc22/tests/test_functional_bootstrap.py | 2 +- src/tests/ofc22/tests/test_functional_cleanup.py | 2 +- src/tests/ofc22/tests/test_functional_create_service.py | 2 +- src/tests/ofc22/tests/test_functional_create_service_xr.py | 2 +- src/tests/ofc22/tests/test_functional_delete_service.py | 2 +- src/tests/ofc22/tests/test_functional_delete_service_xr.py | 2 +- src/tests/ofc23/__init__.py | 2 +- src/tests/ofc23/delete_hierar.sh | 2 +- src/tests/ofc23/delete_sligrp.sh | 2 +- src/tests/ofc23/deploy_child.sh | 2 +- src/tests/ofc23/deploy_hierar.sh | 2 +- src/tests/ofc23/deploy_parent.sh | 2 +- src/tests/ofc23/deploy_sligrp.sh | 2 +- src/tests/ofc23/deploy_specs_child.sh | 2 +- src/tests/ofc23/deploy_specs_parent.sh | 2 +- src/tests/ofc23/deploy_specs_sligrp.sh | 2 +- src/tests/ofc23/dump_logs.sh | 2 +- src/tests/ofc23/fast_redeploy.sh | 2 +- src/tests/ofc23/nginx-ingress-controller-child.yaml | 2 +- src/tests/ofc23/nginx-ingress-controller-parent.yaml | 2 +- src/tests/ofc23/show_deploy.sh | 2 +- src/tests/ofc23/show_deploy_sligrp.sh | 2 +- src/tests/ofc23/tfs-ingress-child.yaml | 2 +- src/tests/ofc23/tfs-ingress-parent.yaml | 2 +- src/tests/ofc24/.gitlab-ci.yml | 2 +- src/tests/ofc24/Dockerfile | 2 +- src/tests/ofc24/__init__.py | 2 +- src/tests/ofc24/_old/startExtraNetConfigAgent.sh | 2 +- src/tests/ofc24/_old/start_topo.sh | 2 +- src/tests/ofc24/deploy-node-agents.sh | 2 +- src/tests/ofc24/deploy_specs.sh | 2 +- src/tests/ofc24/destroy-node-agents.sh | 2 +- src/tests/ofc24/node-agents-config/startNetconfAgent-mg-on.sh | 2 +- src/tests/ofc24/node-agents-config/startNetconfAgent-tp.sh | 2 +- src/tests/ofc24/requirements.in | 2 +- src/tests/ofc24/run-tests-locally.sh | 2 +- src/tests/ofc24/tests/__init__.py | 2 +- src/tests/ofc24/tests/test_functional_bootstrap.py | 2 +- src/tests/ofc24/tests/test_functional_cleanup.py | 2 +- src/tests/ofc24/tests/test_functional_create_service_bidir.py | 2 +- .../ofc24/tests/test_functional_create_service_unidir.py | 2 +- src/tests/ofc24/tests/test_functional_delete_service_bidir.py | 2 +- .../ofc24/tests/test_functional_delete_service_unidir.py | 2 +- src/tests/p4/__init__.py | 2 +- src/tests/p4/deploy_specs.sh | 2 +- src/tests/p4/mininet/8switch3path.py | 2 +- src/tests/p4/probe/monitoring_kpis.py | 2 +- src/tests/p4/probe/probe-tfs/Cargo.toml | 2 +- src/tests/p4/probe/probe-tfs/build.rs | 2 +- src/tests/p4/probe/probe-tfs/connect_to_mininet.sh | 2 +- src/tests/p4/probe/probe-tfs/deploy.sh | 2 +- src/tests/p4/probe/probe-tfs/src/agent.rs | 2 +- src/tests/p4/probe/probe-tfs/src/ping.rs | 2 +- src/tests/p4/run_test_01_bootstrap.sh | 2 +- src/tests/p4/run_test_02_create_service.sh | 2 +- src/tests/p4/run_test_03_delete_service.sh | 2 +- src/tests/p4/run_test_04_cleanup.sh | 2 +- src/tests/p4/setup.sh | 2 +- src/tests/p4/tests/BuildDescriptors.py | 2 +- src/tests/p4/tests/LoadDescriptors.py | 2 +- src/tests/p4/tests/Objects.py | 2 +- src/tests/p4/tests/__init__.py | 2 +- src/tests/p4/tests/test_functional_bootstrap.py | 2 +- src/tests/p4/tests/test_functional_cleanup.py | 2 +- src/tests/p4/tests/test_functional_create_service.py | 2 +- src/tests/p4/tests/test_functional_delete_service.py | 2 +- src/tests/p4/tests/topologies/6switchObjects.py | 2 +- src/tests/scenario2/__init__.py | 2 +- src/tests/scenario2/delete_all.sh | 2 +- src/tests/scenario2/deploy_all.sh | 2 +- src/tests/scenario2/deploy_specs_dom1.sh | 2 +- src/tests/scenario2/deploy_specs_dom2.sh | 2 +- src/tests/scenario2/deploy_specs_dom3.sh | 2 +- src/tests/scenario2/deploy_specs_dom4.sh | 2 +- src/tests/scenario2/dump_logs.sh | 2 +- src/tests/scenario2/fast_redeploy.sh | 2 +- src/tests/scenario2/nginx-ingress-controller-dom1.yaml | 2 +- src/tests/scenario2/nginx-ingress-controller-dom2.yaml | 2 +- src/tests/scenario2/nginx-ingress-controller-dom3.yaml | 2 +- src/tests/scenario2/nginx-ingress-controller-dom4.yaml | 2 +- src/tests/scenario2/old_tests/run_test_01_bootstrap.sh | 2 +- src/tests/scenario2/old_tests/run_test_02_create_service.sh | 2 +- src/tests/scenario2/old_tests/run_test_03_delete_service.sh | 2 +- src/tests/scenario2/old_tests/run_test_04_cleanup.sh | 2 +- src/tests/scenario2/old_tests/run_tests_and_coverage.sh | 2 +- src/tests/scenario2/old_tests/tests/BuildDescriptors.py | 2 +- src/tests/scenario2/old_tests/tests/Fixtures.py | 2 +- src/tests/scenario2/old_tests/tests/LoadDescriptors.py | 2 +- src/tests/scenario2/old_tests/tests/Objects.py | 2 +- src/tests/scenario2/old_tests/tests/__init__.py | 2 +- .../scenario2/old_tests/tests/test_functional_bootstrap.py | 2 +- .../scenario2/old_tests/tests/test_functional_cleanup.py | 2 +- .../old_tests/tests/test_functional_create_service.py | 2 +- .../old_tests/tests/test_functional_delete_service.py | 2 +- src/tests/scenario2/reset.sh | 2 +- src/tests/scenario2/show_deploy.sh | 2 +- src/tests/scenario2/tfs-ingress-dom1.yaml | 2 +- src/tests/scenario2/tfs-ingress-dom2.yaml | 2 +- src/tests/scenario2/tfs-ingress-dom3.yaml | 2 +- src/tests/scenario2/tfs-ingress-dom4.yaml | 2 +- src/tests/scenario3/l3/deploy.sh | 2 +- src/tests/scenario3/l3/deploy_specs.sh | 2 +- src/tests/scenario3/l3/run.sh | 2 +- src/tests/scenario3/optical/deploy_specs.sh | 2 +- src/tests/scenario3/optical/jocn/run_experiment.py | 2 +- src/tests/scenario3/optical/ofc23/run_experiment_demo.py | 2 +- src/tests/tools/__init__.py | 2 +- src/tests/tools/load_scenario/__init__.py | 2 +- src/tests/tools/load_scenario/__main__.py | 2 +- src/tests/tools/load_scenario/run.sh | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/Dockerfile | 2 +- .../tools/mock_ietf_actn_sdn_ctrl/MockIetfActnSdnCtrl.py | 2 +- .../tools/mock_ietf_actn_sdn_ctrl/ResourceEthServices.py | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/ResourceOsuTunnels.py | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/__init__.py | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/build.sh | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/deploy.sh | 2 +- .../mock_ietf_actn_sdn_ctrl/mock-ietf-actn-sdn-ctrl.yaml | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/requirements.in | 2 +- src/tests/tools/mock_ietf_actn_sdn_ctrl/run.sh | 2 +- src/tests/tools/mock_ipm_sdn_ctrl/MockIPMSdnCtrl.py | 2 +- src/tests/tools/mock_ipm_sdn_ctrl/run.sh | 2 +- src/tests/tools/mock_mw_sdn_ctrl/MockMWSdnCtrl.py | 2 +- src/tests/tools/mock_mw_sdn_ctrl/run.sh | 2 +- src/tests/tools/mock_mw_sdn_ctrl/scenario/microwave_deploy.sh | 2 +- src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/Dockerfile | 2 +- src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/build.sh | 2 +- src/tests/tools/mock_mw_sdn_ctrl/ssl_not_working/deploy.sh | 2 +- .../tools/mock_mw_sdn_ctrl/ssl_not_working/requirements.in | 2 +- src/tests/tools/mock_osm/Constants.py | 2 +- src/tests/tools/mock_osm/MockOSM.py | 2 +- src/tests/tools/mock_osm/Tools.py | 2 +- src/tests/tools/mock_osm/__init__.py | 2 +- .../tools/mock_tfs_optical_sdn_ctrl/MockTfsOpticalSdnCtrl.py | 2 +- src/tests/tools/mock_tfs_optical_sdn_ctrl/data.py | 2 +- src/tests/tools/mock_tfs_optical_sdn_ctrl/run.sh | 2 +- src/tests/tools/perf_plots/Component_RPC_Methods.py | 2 +- src/tests/tools/perf_plots/Device_Driver_Details.py | 2 +- src/tests/tools/perf_plots/Device_Driver_Methods.py | 2 +- src/tests/tools/perf_plots/LoadGen_Requests.py | 2 +- src/tests/tools/perf_plots/Service_Handler_Methods.py | 2 +- src/tests/tools/perf_plots/__init__.py | 2 +- src/tests/tools/perf_plots/collect.sh | 2 +- src/tests/tools/perf_plots/experiments/Experiment.py | 2 +- src/tests/tools/perf_plots/experiments/__init__.py | 2 +- .../tools/perf_plots/experiments/scenario_1/Emu_Onboard.py | 2 +- .../perf_plots/experiments/scenario_1/L2NM_EMU_Service.py | 2 +- .../perf_plots/experiments/scenario_1/L3NM_EMU_Service.py | 2 +- src/tests/tools/perf_plots/experiments/scenario_1/__init__.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_001tnt_005erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_005tnt_025erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_010tnt_050erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_020tnt_100erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_040tnt_200erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_060tnt_300erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_080tnt_400erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_100tnt_500erl.py | 2 +- .../perf_plots/experiments/scenario_2/Scal_120tnt_600erl.py | 2 +- src/tests/tools/perf_plots/experiments/scenario_2/__init__.py | 2 +- src/tests/tools/perf_plots/tools/FileSystem.py | 2 +- src/tests/tools/perf_plots/tools/Histogram.py | 2 +- src/tests/tools/perf_plots/tools/HistogramData.py | 2 +- src/tests/tools/perf_plots/tools/Plotter.py | 2 +- src/tests/tools/perf_plots/tools/Prometheus.py | 2 +- src/tests/tools/perf_plots/tools/__init__.py | 2 +- src/webui/.gitlab-ci.yml | 2 +- src/webui/Config.py | 2 +- src/webui/Dockerfile | 2 +- src/webui/__init__.py | 2 +- src/webui/requirements.in | 2 +- src/webui/service/__init__.py | 2 +- src/webui/service/__main__.py | 2 +- src/webui/service/bgpls/__init__.py | 2 +- src/webui/service/bgpls/forms.py | 2 +- src/webui/service/bgpls/routes.py | 2 +- src/webui/service/context/__init__.py | 2 +- src/webui/service/context/routes.py | 2 +- src/webui/service/device/__init__.py | 2 +- src/webui/service/device/forms.py | 2 +- src/webui/service/device/routes.py | 2 +- src/webui/service/js/__init__.py | 2 +- src/webui/service/js/routes.py | 2 +- src/webui/service/link/__init__.py | 2 +- src/webui/service/link/routes.py | 2 +- src/webui/service/load_gen/__init__.py | 2 +- src/webui/service/load_gen/forms.py | 2 +- src/webui/service/load_gen/routes.py | 2 +- src/webui/service/main/__init__.py | 2 +- src/webui/service/main/forms.py | 2 +- src/webui/service/main/routes.py | 2 +- src/webui/service/policy_rule/__init__.py | 2 +- src/webui/service/policy_rule/routes.py | 2 +- src/webui/service/service/__init__.py | 2 +- src/webui/service/service/forms.py | 2 +- src/webui/service/service/routes.py | 2 +- src/webui/service/slice/__init__.py | 2 +- src/webui/service/slice/routes.py | 2 +- src/webui/service/templates/base.html | 2 +- src/webui/service/templates/bgpls/add.html | 2 +- src/webui/service/templates/bgpls/addSpeaker.html | 2 +- src/webui/service/templates/bgpls/editSpeakers.html | 2 +- src/webui/service/templates/bgpls/home.html | 2 +- src/webui/service/templates/context/home.html | 2 +- src/webui/service/templates/device/add.html | 2 +- src/webui/service/templates/device/addconfig.html | 2 +- src/webui/service/templates/device/detail.html | 2 +- src/webui/service/templates/device/home.html | 2 +- src/webui/service/templates/device/inventory.html | 2 +- src/webui/service/templates/device/update.html | 2 +- src/webui/service/templates/device/updateconfig.html | 2 +- src/webui/service/templates/js/site.js | 2 +- src/webui/service/templates/js/topology.js | 2 +- src/webui/service/templates/link/detail.html | 2 +- src/webui/service/templates/link/home.html | 2 +- src/webui/service/templates/load_gen/home.html | 2 +- src/webui/service/templates/main/about.html | 2 +- src/webui/service/templates/main/debug.html | 2 +- src/webui/service/templates/main/home.html | 2 +- src/webui/service/templates/policy_rule/home.html | 2 +- src/webui/service/templates/service/add-xr.html | 2 +- src/webui/service/templates/service/add.html | 2 +- src/webui/service/templates/service/configure_ACL_IPV4.html | 2 +- src/webui/service/templates/service/configure_ACL_IPV6.html | 2 +- src/webui/service/templates/service/configure_ACL_L2.html | 2 +- src/webui/service/templates/service/configure_L2VPN.html | 2 +- src/webui/service/templates/service/configure_L3VPN.html | 2 +- src/webui/service/templates/service/detail.html | 2 +- src/webui/service/templates/service/home.html | 2 +- src/webui/service/templates/slice/detail.html | 2 +- src/webui/service/templates/slice/home.html | 2 +- src/webui/service/templates/topology/add.html | 2 +- src/webui/service/templates/topology/addSpeaker.html | 2 +- src/webui/service/templates/topology/editSpeakers.html | 2 +- src/webui/service/templates/topology/home.html | 2 +- src/webui/service/topology/__init__.py | 2 +- src/webui/service/topology/forms.py | 2 +- src/webui/service/topology/routes.py | 2 +- src/webui/tests/__init__.py | 2 +- src/webui/tests/test_unitary.py | 2 +- src/webui/utils/__init__.py | 2 +- src/webui/utils/form_validators.py | 2 +- src/ztp/.gitlab-ci.yml | 2 +- src/ztp/pom.xml | 2 +- src/ztp/src/main/docker/Dockerfile.multistage.jvm | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ContextSubscriber.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/Serializer.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/SimpleLivenessCheck.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/SimpleReadinessCheck.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ZtpConfiguration.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ZtpGateway.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ZtpGatewayImpl.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ZtpService.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/ZtpServiceImpl.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/acl/AclAction.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/acl/AclEntry.java | 2 +- .../main/java/org/etsi/tfs/ztp/acl/AclForwardActionEnum.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/acl/AclLogActionEnum.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/acl/AclMatch.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/acl/AclRuleSet.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/acl/AclRuleTypeEnum.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/common/Util.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/ContextGateway.java | 2 +- .../java/org/etsi/tfs/ztp/context/ContextGatewayImpl.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/ContextService.java | 2 +- .../java/org/etsi/tfs/ztp/context/ContextServiceImpl.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/ConfigActionEnum.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/ConfigRule.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/ConfigRuleAcl.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/ConfigRuleCustom.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/ConfigRuleType.java | 2 +- .../org/etsi/tfs/ztp/context/model/ConfigRuleTypeAcl.java | 2 +- .../org/etsi/tfs/ztp/context/model/ConfigRuleTypeCustom.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/context/model/Device.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/DeviceConfig.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/DeviceDriverEnum.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/DeviceEvent.java | 2 +- .../etsi/tfs/ztp/context/model/DeviceOperationalStatus.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/context/model/Empty.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/EndPoint.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/EndPointId.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/context/model/Event.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/EventTypeEnum.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/GpsPosition.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/Location.java | 2 +- .../java/org/etsi/tfs/ztp/context/model/LocationType.java | 2 +- .../etsi/tfs/ztp/context/model/LocationTypeGpsPosition.java | 2 +- .../org/etsi/tfs/ztp/context/model/LocationTypeRegion.java | 2 +- .../main/java/org/etsi/tfs/ztp/context/model/TopologyId.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/device/DeviceGateway.java | 2 +- .../main/java/org/etsi/tfs/ztp/device/DeviceGatewayImpl.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/device/DeviceService.java | 2 +- .../main/java/org/etsi/tfs/ztp/device/DeviceServiceImpl.java | 2 +- .../tfs/ztp/exception/ExternalServiceFailureException.java | 2 +- .../org/etsi/tfs/ztp/exception/GeneralExceptionHandler.java | 2 +- .../etsi/tfs/ztp/kpi_sample_types/model/KpiSampleType.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/model/DeviceRole.java | 2 +- .../main/java/org/etsi/tfs/ztp/model/DeviceRoleConfig.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/model/DeviceRoleId.java | 2 +- .../src/main/java/org/etsi/tfs/ztp/model/DeviceRoleType.java | 2 +- src/ztp/src/main/java/org/etsi/tfs/ztp/model/DeviceState.java | 2 +- src/ztp/src/main/resources/application.yml | 2 +- .../src/test/java/org/etsi/tfs/ztp/ConfigRuleTypeTest.java | 2 +- .../src/test/java/org/etsi/tfs/ztp/ContextSubscriberTest.java | 2 +- .../src/test/java/org/etsi/tfs/ztp/EndPointCreationTest.java | 2 +- src/ztp/src/test/java/org/etsi/tfs/ztp/LocationTypeTest.java | 2 +- .../src/test/java/org/etsi/tfs/ztp/MockZtpConfiguration.java | 2 +- src/ztp/src/test/java/org/etsi/tfs/ztp/SerializerTest.java | 2 +- .../test/java/org/etsi/tfs/ztp/ZtpFunctionalServiceTest.java | 2 +- src/ztp/src/test/java/org/etsi/tfs/ztp/ZtpServiceTest.java | 2 +- src/ztp/util/set_version.sh | 2 +- update_tfs_runtime_env_vars.sh | 2 +- 3002 files changed, 3003 insertions(+), 3003 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2d7c2e21b..e2d653e03 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/clean_testing_environment.sh b/clean_testing_environment.sh index b9c502ade..f037a2a39 100755 --- a/clean_testing_environment.sh +++ b/clean_testing_environment.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/common_requirements.in b/common_requirements.in index 37b70c993..3aa30e174 100644 --- a/common_requirements.in +++ b/common_requirements.in @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/coverage/.coveragerc.template b/coverage/.coveragerc.template index 4421399ca..3d8065aca 100644 --- a/coverage/.coveragerc.template +++ b/coverage/.coveragerc.template @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/MW/generate.sh b/data/perf/old/MW/generate.sh index a7fd03b2f..ccef4e113 100755 --- a/data/perf/old/MW/generate.sh +++ b/data/perf/old/MW/generate.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/MW/generate_plot.py b/data/perf/old/MW/generate_plot.py index 3d2d3a77c..22befef30 100644 --- a/data/perf/old/MW/generate_plot.py +++ b/data/perf/old/MW/generate_plot.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/OpenConfig/generate.sh b/data/perf/old/OpenConfig/generate.sh index 6a6123bab..5147d4962 100755 --- a/data/perf/old/OpenConfig/generate.sh +++ b/data/perf/old/OpenConfig/generate.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/OpenConfig/generate_plot.py b/data/perf/old/OpenConfig/generate_plot.py index 63166d7ac..8d50ab81f 100644 --- a/data/perf/old/OpenConfig/generate_plot.py +++ b/data/perf/old/OpenConfig/generate_plot.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/TE/te-cdf.py b/data/perf/old/TE/te-cdf.py index fdcc1f679..a3e7cc530 100644 --- a/data/perf/old/TE/te-cdf.py +++ b/data/perf/old/TE/te-cdf.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/XR/generate.sh b/data/perf/old/XR/generate.sh index a26632959..d5b704763 100755 --- a/data/perf/old/XR/generate.sh +++ b/data/perf/old/XR/generate.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/XR/generate_plot.py b/data/perf/old/XR/generate_plot.py index d9cf628a1..f27c37e53 100644 --- a/data/perf/old/XR/generate_plot.py +++ b/data/perf/old/XR/generate_plot.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/emulated/generate.sh b/data/perf/old/emulated/generate.sh index c61406525..7b978c1fd 100755 --- a/data/perf/old/emulated/generate.sh +++ b/data/perf/old/emulated/generate.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/data/perf/old/emulated/generate_plot.py b/data/perf/old/emulated/generate_plot.py index 0f74bc401..d049386c3 100644 --- a/data/perf/old/emulated/generate_plot.py +++ b/data/perf/old/emulated/generate_plot.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/all.sh b/deploy/all.sh index 25d69b485..c169bc92c 100755 --- a/deploy/all.sh +++ b/deploy/all.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/component.sh b/deploy/component.sh index d3a94c259..89d2383d7 100755 --- a/deploy/component.sh +++ b/deploy/component.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/crdb.sh b/deploy/crdb.sh index a304e83d1..c979ad4f2 100755 --- a/deploy/crdb.sh +++ b/deploy/crdb.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/expose_dashboard.sh b/deploy/expose_dashboard.sh index 65f715cab..f2391ab5d 100755 --- a/deploy/expose_dashboard.sh +++ b/deploy/expose_dashboard.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/mock_blockchain.sh b/deploy/mock_blockchain.sh index df8496bea..fafa435b1 100755 --- a/deploy/mock_blockchain.sh +++ b/deploy/mock_blockchain.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/nats.sh b/deploy/nats.sh index 004f67c44..366270a69 100755 --- a/deploy/nats.sh +++ b/deploy/nats.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/qdb.sh b/deploy/qdb.sh index 3235c6c82..acbcfd4f9 100755 --- a/deploy/qdb.sh +++ b/deploy/qdb.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/show.sh b/deploy/show.sh index a4084ac65..4fa1ce3a6 100755 --- a/deploy/show.sh +++ b/deploy/show.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/deploy/tfs.sh b/deploy/tfs.sh index fd49c9758..3fdbe77fb 100755 --- a/deploy/tfs.sh +++ b/deploy/tfs.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/containerlab/tfs-scenario.clab.yml b/hackfest/containerlab/tfs-scenario.clab.yml index df197ebea..f79378757 100644 --- a/hackfest/containerlab/tfs-scenario.clab.yml +++ b/hackfest/containerlab/tfs-scenario.clab.yml @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/gnmi/srlinux.clab.yml b/hackfest/gnmi/srlinux.clab.yml index a589292ac..6cfeb6108 100644 --- a/hackfest/gnmi/srlinux.clab.yml +++ b/hackfest/gnmi/srlinux.clab.yml @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connection.proto b/hackfest/grpc/connection.proto index 0e8522768..0da1059f3 100644 --- a/hackfest/grpc/connection.proto +++ b/hackfest/grpc/connection.proto @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connection/create.py b/hackfest/grpc/connection/create.py index 7d134105d..9e32dd8d4 100644 --- a/hackfest/grpc/connection/create.py +++ b/hackfest/grpc/connection/create.py @@ -1,5 +1,5 @@ #! /usr/bin/env python3 -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connection/list.py b/hackfest/grpc/connection/list.py index 5b1926d3c..e852b69b7 100644 --- a/hackfest/grpc/connection/list.py +++ b/hackfest/grpc/connection/list.py @@ -1,5 +1,5 @@ #! /usr/bin/env python3 -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionService.proto b/hackfest/grpc/connectionService.proto index 8f6b5a6e7..0a80f2c1a 100644 --- a/hackfest/grpc/connectionService.proto +++ b/hackfest/grpc/connectionService.proto @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionService/connectionService_client.py b/hackfest/grpc/connectionService/connectionService_client.py index e5c1bf481..2ed97ae97 100644 --- a/hackfest/grpc/connectionService/connectionService_client.py +++ b/hackfest/grpc/connectionService/connectionService_client.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionService/connectionService_server.py b/hackfest/grpc/connectionService/connectionService_server.py index f1632db90..ff991f44c 100644 --- a/hackfest/grpc/connectionService/connectionService_server.py +++ b/hackfest/grpc/connectionService/connectionService_server.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionServiceWithNotif.proto b/hackfest/grpc/connectionServiceWithNotif.proto index f2f5b17e3..778203e26 100644 --- a/hackfest/grpc/connectionServiceWithNotif.proto +++ b/hackfest/grpc/connectionServiceWithNotif.proto @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py index 9518bf743..2503f424f 100644 --- a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_client.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py index 922f91837..d5c413064 100644 --- a/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py +++ b/hackfest/grpc/connectionServiceWithNotif/connectionServiceWithNotif_server.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/topologyService.proto b/hackfest/grpc/topologyService.proto index 775e45add..6a38bf9c7 100644 --- a/hackfest/grpc/topologyService.proto +++ b/hackfest/grpc/topologyService.proto @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/topologyService/topologyService_client.py b/hackfest/grpc/topologyService/topologyService_client.py index ef628183b..aa1ffc2bf 100644 --- a/hackfest/grpc/topologyService/topologyService_client.py +++ b/hackfest/grpc/topologyService/topologyService_client.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/grpc/topologyService/topologyService_server.py b/hackfest/grpc/topologyService/topologyService_server.py index ff1c80e82..dfd62aa13 100644 --- a/hackfest/grpc/topologyService/topologyService_server.py +++ b/hackfest/grpc/topologyService/topologyService_server.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/kafka/pub.py b/hackfest/kafka/pub.py index e80dd5db8..77564dfcb 100644 --- a/hackfest/kafka/pub.py +++ b/hackfest/kafka/pub.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/kafka/sub.py b/hackfest/kafka/sub.py index 233b9f9d0..2253c6467 100644 --- a/hackfest/kafka/sub.py +++ b/hackfest/kafka/sub.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/mock_osm/MockOSM.py b/hackfest/mock_osm/MockOSM.py index 338db0e19..7ced57d3e 100644 --- a/hackfest/mock_osm/MockOSM.py +++ b/hackfest/mock_osm/MockOSM.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/mock_osm/__init__.py b/hackfest/mock_osm/__init__.py index 1549d9811..3ee6f7071 100644 --- a/hackfest/mock_osm/__init__.py +++ b/hackfest/mock_osm/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/mock_osm/__main__.py b/hackfest/mock_osm/__main__.py index 4ed25eaed..48866fb2d 100644 --- a/hackfest/mock_osm/__main__.py +++ b/hackfest/mock_osm/__main__.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/netconf-oc/device_definition.py b/hackfest/netconf-oc/device_definition.py index 6e737f556..ecd3dd6ce 100644 --- a/hackfest/netconf-oc/device_definition.py +++ b/hackfest/netconf-oc/device_definition.py @@ -1,4 +1,4 @@ -# Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/hackfest/netconf-oc/interfaces.xml b/hackfest/netconf-oc/interfaces.xml index c47fc44e3..f04504bd4 100644 --- a/hackfest/netconf-oc/interfaces.xml +++ b/hackfest/netconf-oc/interfaces.xml @@ -1,6 +1,6 @@ + diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java index e5a37e743..9651d7876 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4PeerInitiatedSession.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java index 002a5caa5..0c1a656c4 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4Session.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java index 61a5fc41c..b96359b6c 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionClient.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java index 668825ca8..4f6f4af85 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionExistsException.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java index df5d7bc9c..963406700 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4SessionsInformation.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java index 6f426828b..5a1a5119a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/BGP4StateSession.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java index 736c56fc5..0eba7b309 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/ConnectRetryTimer.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java index f32f0218f..ee9dd6623 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/DeadTimerThread.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java index 45636a2fe..c42423aff 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/GenericBGP4Session.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java index 70ebe101f..32112e01b 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepAliveThread.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java index 3bc72c84d..94e39fb19 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/KeepWaitTimerTask.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java index 20b77ce4e..fbb9aca1a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/bgp4session/OpenWaitTimerTask.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java index 329404668..02cfbaf91 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcApp.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java index 6e74dff00..ca9b13007 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/grpcClient.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java index 3010cbbfb..e9dff709f 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/grpc/updateServiceImpl.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java index 87d141222..f4bdcc587 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/json/bgpMarshal.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java index f135a446d..3a813e936 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementServer.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java index 18a433e40..476628728 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/management/BGP4ManagementSession.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java index 9455ccd1c..fb9a08d7e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/LinkNLRIMsg.java @@ -1,5 +1,5 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java index 958544f63..d206cf7e2 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/NodeNLRIMsg.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java index 11bf355d0..4f036b8a1 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/PathAttributeMsg.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java index 37d87e683..aba3dcef5 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsg.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java index 6fd30c6cb..e274a87aa 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/models/UpdateMsgList.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java index 736f6cd3e..6bd951501 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Exception.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java index 768e4a87b..d751622ee 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4LSPeerInfo.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java index e8958d306..3c83a9a77 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4Parameters.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java index 75694e90c..9e54e64c1 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionClientManager.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java index ccb59fa2e..0d337bb61 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGP4SessionServerManager.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java index bdddd4379..9894a8966 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeer.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java index 97e2702f5..aa2a5cc6a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/BGPPeerMain.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java index bd27bb87a..d66f2485d 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SaveTopologyinDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SendTopology.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SendTopology.java index d2de34a91..5bfeae8e2 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SendTopology.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/peer/SendTopology.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java index 512467ccf..cbea17cc5 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4DomainTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java index 0f027c693..19aad7115 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/BGP4IntradomainTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java index ae4946dd2..22319122a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/tedb/IntraTEDBS.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java index e77612ea6..0da582030 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateDispatcher.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java index df711c284..bf7a0b84a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateLink.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateProccesorThread.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateProccesorThread.java index cedbe3498..26d876c17 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateProccesorThread.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdateProccesorThread.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java index 229fbe1de..4c0fd1380 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/bgp4Peer/updateTEDB/UpdaterThreadRedisTED.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java index e56e45cf5..436263a47 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DatabaseControlSimplifiedLSA.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java index 85ecd8fd3..44d2973b2 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/DomainTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java index e2fafa238..79ad7f82c 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/EdgeUtils.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java index ce5652267..16ba2de9b 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/FileTEDBUpdater.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java index a819bcf4d..dac19068f 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IT_Resources.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/InterDomainEdge.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/InterDomainEdge.java index 724dbb8e0..187b21205 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/InterDomainEdge.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/InterDomainEdge.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainEdge.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainEdge.java index 50bf93959..09eeedd49 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainEdge.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainEdge.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainWeightEdge.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainWeightEdge.java index ce3cac72e..63052028b 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainWeightEdge.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/IntraDomainWeightEdge.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Layer.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Layer.java index e9835d418..96d0c0c2e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Layer.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Layer.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MDTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MDTEDB.java index 09b75f6fe..b8e671de2 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MDTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MDTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java index 19c345888..746338df2 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiDomainTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java index a2690516a..bed570fed 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/MultiLayerTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java index bc523ba5a..b0f3bb3ac 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/Node_Info.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java index d51896c0e..e65a0ec3f 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityEntry.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java index cf2f3c5c3..161d27f1f 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/ReachabilityManager.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java index ff69b8901..78a234ee1 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONInformation.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java index ce769c41c..22b91b986 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SSONListener.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java index f2d5dbc89..4e74e445b 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/SimpleTEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java index 51fc3d8c1..ca937a5aa 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDB.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java index fe261b80e..6b0aa6176 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDBUpdater.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java index 86e653ed0..ec1b2e650 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TEDListener.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java index 0e5476dfe..f1842a6ce 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/TE_Information.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java index c67f3a826..2b344a342 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONInformation.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java index 31b35b441..a802fae9e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/WSONListener.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java index 463e300c4..853aa217e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterController.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java index 9bea224fa..401e4bc9c 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterFloodlight.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java index fb2c3c51d..5b8e65f0c 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterNOX.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java index a1a8c0e6f..1bdbc624d 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterODL.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java index c1383b8b2..74b0a1f4e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterRYU.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java index a87fc3790..ac11500b7 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/controllers/TEDUpdaterTREMA.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java index aec4c98c0..223c1940e 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/AuthInfo.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java index 0fb657e27..fd5f7aa88 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Bandwidth.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java index 98c529e65..37fab2297 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/BgpParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java index 27a4c0ffc..845bcf416 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/EndPoint.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java index 6bd26cf48..0c56d240c 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IPNodeParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java index 23f619fa5..57010b999 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Intf.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IsisParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IsisParams.java index 0cdc583a9..1daaf2124 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IsisParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/IsisParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Link.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Link.java index cd2ab812c..35b3e9c22 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Link.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Link.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Location.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Location.java index 7e6453682..311387bc3 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Location.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Location.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Node.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Node.java index bd3350a66..596dedb9a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Node.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Node.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java index 3e383487e..4b06f3868 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/OspfParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java index 1ff00d3c6..d77a70397 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Path.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java index 7c6e003c8..739508b41 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/PhyLinkParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java index 4bfc3e9fa..71cd098a5 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterDesc.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java index a967ef88f..037e6a1eb 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/RouterInfoPM.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java index 423b71ee3..a60bb60ff 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/Service.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java index c6db597fc..efae98762 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/java/eu/teraflow/tid/tedb/elements/StaticRoutingParams.java @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto b/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto index ec8accd8b..89ab745e1 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/proto/grpcService.proto @@ -1,4 +1,4 @@ -// Copyright 2022-2023 ETSI TeraFlowSDN - TFS OSG (https://tfs.etsi.org/) +// Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml index e048daf06..c83d4ec1a 100644 --- a/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml +++ b/src/bgpls_speaker/service/java/netphony-topology/src/main/sample-config-files/TM_COP_example1/TMConfCOP.xml @@ -1,4 +1,4 @@ -